以下是已知问题合并
表:
在5.1.23之前的MySQL服务器版本中,可以使用非唯一的儿童MyISAM表创建临时合并表。
从版本5.1.23,合并子子通过父表锁定。如果父母是临时的,则不会被锁定,因此儿童也没有锁定。并行使用Myisam表损坏了它们。
如果你使用
改变表
改变A.合并
表到另一个存储引擎,映射到底层表丢失。相反,来自底层的行myisam.
表将复制到更改的表中,然后使用指定的存储引擎。这
插入_method.
表选项合并
表表明了哪个底层myisam.
用于插入的表合并
桌子。但是,使用自动递增
表选项myisam.
表对插入件没有效果合并
表直到至少一行直接插入myisam.
桌子。一种
合并
表不能在整个表格中保持唯一性约束。当你执行一个插
,数据进入第一个或最后一个myisam.
表(由插入_method.
选项)。MySQL确保唯一的键值在此内部仍然是独一无二的myisam.
表,但没有超过集合中的所有底层表。因为这
合并
引擎不能在底层表集中强制执行唯一性,代替
不按预期工作。两个关键事实是:类似的考虑申请
插入...在重复的密钥更新时
。合并
表不支持分区。也就是说,你不能分区合并
表,也不可以合并
表的底层myisam.
表被分区。你不应该使用
分析表
那修复表
那优化表
那改变表
那下拉表
那删除
没有在哪里
条款,或者截断表
在映射到打开的任何表上合并
桌子。如果你这样做,合并
表仍可能引用原始表并产生意外结果。要解决这个问题,请确保没有合并
桌子通过发出a仍然开放冲洗表
在执行任何命名操作之前的声明。意外结果包括该操作的可能性
合并
表报告表损坏。如果在基础上的命名操作之一之后发生这种情况myisam.
表,腐败消息是虚假的。要处理这一点,发布一个冲洗表
修改后的声明myisam.
表。下拉表
在一个由a使用的桌子上合并
表不适用于窗户,因为合并
存储引擎的表映射是隐藏的来自MySQL的上层。Windows不允许删除打开文件,所以您首先必须刷新所有合并
桌子(有冲洗表
)或放下合并
表滴表之前。的定义
myisam.
桌子和桌子合并
当访问表(例如,作为a的一部分时,检查表选择
或者插
陈述)。检查确保表和父母的定义合并
表定义通过比较列顺序,类型,大小和关联索引来匹配。如果表之间存在差异,则返回错误,并且语句失败。由于这些检查在打开表时进行,因此对单个表的定义的任何更改,包括列更改,列排序和引擎更改会导致语句失败。索引的顺序
合并
表及其底层表应相同。如果你使用改变表
添加A.独特
索引到一个表中使用的表合并
表,然后使用改变表
在上添加undunique索引合并
表,如果在底层表中存在undunique索引,则表格排序对于表不同。(这发生了因为改变表
put独特
非唯一索引前的索引,以促进重复键的快速检测。)因此,具有此类索引的表的查询可能会返回意外结果。如果您遇到类似的错误消息错误1017(hy000):找不到文件:'
tbl_name.
.mrg'(errno:2),它通常表示一些底层表格不使用myisam.
存储引擎。确认所有这些表都是myisam.
。a中的最大行数
合并
表是264.(〜1.844e + 19;与a相同myisam.
桌子)。不可能合并多个myisam.
桌子成一个合并
表将超过此数量的行。使用底层
myisam.
不同行格式的表格与父级合并
表当前已知会失败。看到bug#32364。您无法更改非本断的联盟列表
合并
表锁定表
有效。以下是不是工作:创建表M1 ... Engine = MRG_MYISAM ......;锁定表T1写入,T2写入,M1写;改变表M1 ... Union =(T1,T2)......;
但是,你可以用临时做到这一点
合并
桌子。你无法创建一个
合并
表创建...选择
,既不是临时的合并
表,也不是个体合并
桌子。例如:创建表M1 ... Engine = MRG_MYISAM ...选择......;
尝试执行此结果的错误:
tbl_name.
不是基础表
。在某些情况下,不同的情况
pack_keys.
表选项值之间的值合并
如果底层表包含,则底层表会导致意外结果char
或者二进制
列。作为解决方法,使用改变表
确保所有涉及的表都有相同的表pack_keys.
价值。(bug#50646)