相关文件10bet官方网站 本手册下载
PDF (Ltr)- 41.2 mb
PDF (A4)- 41.3MB.
PDF (RPM)- 39.5MB.
HTML下载(TGZ)- 9.3 mb
HTML下载(邮政编码)- 9.3 mb
HTML下载(RPM)- 7.8 mb
手册页(TGZ)- 260.6 kb
男人页(zip)- 371.8KB.
信息(GZIP)- 4.0MB.
信息(zip)- 4.0MB.
从本手册中摘录

16.7合并存储引擎

合并存储引擎,也称为MRG_MYISAM.发动机,是一个相同的集合MyISAM可以作为一个表使用。相同的意味着所有表都具有相同的列数据类型和索引信息。你不能合并MyISAM列以不同顺序列出的表,对应列中的数据类型不完全相同,或者索引的顺序不同。然而,任何或所有MyISAM桌子可以压缩yyisampack..看myisampack -生成压缩的只读MyISAM表.表之间的差异如此无关紧要:

  • 对应列和索引的名称可以不同。

  • 表格,列和索引的注释可能有所不同。

  • 表选项如AVG_ROW_LENGTHmax_rows.,或pack_keys.可以是不同的。

一个替代方案合并表是一个分区表,其在单独的文件中存储单个表的分区,并启用一些操作要更有效地执行。有关更多信息,请参阅24章,分区

当您创建合并表,mysql创造了一个.MRG包含底层名称的磁盘上的文件MyISAM应使用的表格。表格格式的合并表存储在MySQL数据字典中。底层表格不一定在同一数据库中合并表格

您可以使用选择删除更新, 和合并表。你必须有选择删除, 和更新特权的MyISAM你映射到a的表合并表格

请注意

的使用合并表需要以下安全问题:如果用户可以访问MyISAM桌子t,该用户可以创建合并桌子访问t.但是,如果用户的特权t是否随后被撤销,用户可以继续访问t通过这样做

使用删除表与一个合并表只删除合并规范。基础表不受影响。

创建一个合并表,您必须指定一个Union =(列表选项表示哪个MyISAM要使用的表。您可以选择指定一个INSERT_METHOD控件中插入的方式合并桌子发生。使用价值第一的或者去年分别在第一个或最后一个基础表中进行插入。如果你指定noINSERT_METHOD选项或者如果您使用值指定它,插入到合并表格不允许并尝试这样做导致错误。

以下示例显示了如何创建一个合并桌子:

MySQL>创建表T1( - > A int Not Null Auto_Increment主键, - >消息字符(20))引擎= Myisam;MySQL>创建表T2( - > A int Not Null Auto_Increment主键, - > Message Char(20))引擎= Myisam;mysql>插入到t1(消息)值('testing'),('table'),('t1');mysql>插入t2(消息)值('test'),('table'),('t2');mysql>创建表总计( - > int not null auto_increment, - > message char(20),索引(a)) - >引擎= mergeun =(t1,t2)插入_method = last;

柱子一个被索引为首要的关键在底层MyISAM表格,但不在合并表格在那里它是索引但不是作为一个首要的关键因为A.合并表不能对基础表集强制唯一性。(类似地,带有独特的底层表中的索引应索引合并但不作为表独特的指数。)

创造之后合并表,您可以使用它来发出作为整体上的表组上运行的查询:

mysql>从总共选择*;+ --- + --------- + |a |消息|+ --- + --------- + |1 |测试||2 |表| | 3 | t1 | | 1 | Testing | | 2 | table | | 3 | t2 | +---+---------+

重拍A.合并表到不同的集合MyISAM表,您可以使用以下方法之一:

  • 下降合并表并重新创建它。

  • ALTER TABLEtbl_name.联盟=(…)更改基础表的列表。

    它也可以使用ALTER TABLE ... UNION =()(即带空联盟子句)删除所有基础表。然而,在这种情况下,表实际上是空的,插入失败,因为没有基础表可以接受新行。这样的表作为创建新表的模板可能很有用合并表与创建表……就像

基础表定义和索引必须与合并表格控件的一部分时,将检查一致性合并桌子是开着的,不是当着的合并创建表。如果有表未通过一致性检查,则触发打开表的操作失败。这意味着更改合并可能会导致失败的时候合并表访问。适用于每个表的符合性检查是:

  • 基础表和合并表必须具有相同数量的列。

  • 的列顺序合并表必须匹配。

  • 此外,父类中每个对应列的规范合并表和基础表进行比较,必须满足以下检查:

    • 底层表中的列类型合并表必须相等。

    • 基础表中的列长度和合并表必须相等。

    • 对象的列合并表可以空值

  • 基础表必须至少有与合并表格底层表可能比合并表,但不能有更少。

    请注意

    存在一个已知的问题,即相同列上的索引必须按相同的顺序,在两个合并表和底层MyISAM表格看到bug#33653。

    每个索引必须满足以下检查:

    • 基础表的索引类型和合并表必须是相同的。

    • 索引部分的索引部分(即复合指数中的多列)的索引定义中的索引定义和合并表必须是相同的。

    • 对于每个索引部分:

      • 索引部分长度必须相等。

      • 索引部分类型必须相等。

      • 索引部分语言必须相等。

      • 检查索引部分是否可以空值

如果一个合并由于底层表的问题,无法打开或使用表格,检查表显示导致该表的信息。

额外的资源