关于mysql合并表的详细介绍
mysql创建合并表和分区表有点相似,他是mysql的一种特性,可以把多个结构相同的myisam表合并为一个虚表,存续引擎必须是merge,当从合并表中查询就像从子表中查询一样,和视图有写相似,当创建合并表时也有自己的frm和mrg文件。
合并表创建方法
createtablet3(a int primarykey);
createtablet4(a int primarykey);
create tablemrg(aint primarykey) union=(t3,t4) insert_method=last;
这里需要注意,当2个子表中有相同的列时,创建合并表并不会唯一
mysql>select*frommrg;
+---+
|a|
+---+
|1|
|2|
|2|
|3|
|4|
+---+
5rowsinset(0.00sec)
mysql>select*fromt3;
+---+
|a|
+---+
|1|
|2|
+---+
2rowsinset(0.00sec)
mysql>select*fromt4;
+---+
|a|
+---+
|2|
|3|
|4|
+---+
3rowsinset(0.00sec)
a=2的列在父表里面并不唯一即使你使用了PRIMARY KEY约束也一样。
insert_method=last选项有2个值,first 和last 他说明插入值时是在第一个表还是最有一个,一般查询访问时是顺序访问union中的表顺序的。
当删除了父表,子表任然可以访问
mysql>droptablemrg;
QueryOK,0rowsaffected(0.00sec)
mysql>select*fromt3;
+---+
|a|
+---+
|1|
|2|
+---+
2rowsinset(0.00sec);
当删除子表父表不能访问
mysql>droptablet3;
QueryOK,0rowsaffected(0.00sec)
mysql>select*frommrg;
ERROR1168(HY000):Unabletoopenunderlyingtablewhichisdifferentlydefine
orofnon-MyISAMtypeordoesn"texist;
同时如果你的子表定义不一致的话,父表能创建成功,但是不能正常访问。
合并表比非合并表含有更多的文件描述符,他的访问其实是打开了子表,所以缓存中的数据可能对应有多个文件描述符,在合并表中虽然有可能有相同的值,但是只要查询找到了第一个想要的值,查询就会停止
相关文章
- MySQL拼音查询:学习如何使用(mysql拼音查询)
- MySQL参考书籍:实战技巧介绍(mysql参考书籍)
- Mysql突破重重困境:海量数据处理方案(mysql海量数据处理)
- MySQL字段冲突:解决办法介绍(mysql字段冲突)
- 实现定时备份MySQL数据库的脚本(mysql备份脚本)
- MySQL中文数据类型的深入理解(mysql中文数据类型)
- MySQL数据库的建立步骤——详细分解25步骤(mysql建数据库步骤)
- 利用易语言将数据写入Mysql数据库(易语言写入mysql)
- 如何创建MySQL触发器?一份详细指南。(mysql触发器创建)
- 轻松搭建你的MySQL社工库!详细教程分享(mysql社工库搭建教程)
- MySQL实现服务端千万QPS的非凡精彩(mysql 最大qps)
- 「MySQL大全」:完整介绍MySQL的一切重要知识,包含基础知识、高级特性、优化技巧等全面内容。(mysql大全)
- MySQL 介绍:全面了解 MySQL 数据库的特性、用途、安装及配置步骤等。(mysql大全)
- MySQL大全:包含所有关于MySQL的信息(mysql大全)
- MySQL全面介绍:从入门到精通(mysql大全)
- 鲜艳的MySQL:展示多彩多姿的缤纷世界(hue mysql)
- MySQL配置文件mycnf的详细解析(mysql中my.cnf)
- 数据库命令行中如何查看MySQL数据库(cmd如何查看mysql)
- MySQL的命令行工具MySQL Shell介绍(mysql_shell)
- MySQL XOR操作详解(mysql xor详细)
- MySQL更新限制不允许进行哪些操作(mysql不允许什么更新)
- 深入了解MySQL介绍两种不同的运行模式(mysql 两种模式)
- MySQL限制大附件上传,需要注意(mysql不支持大附件)
- Mysql表的七种类型详细介绍