Merge Tables
合并表实际是容纳真正的表的容器。可以使用特殊的UNION语法来CREATE TABLE。下面是一个合并表的例子:
+------+
+------+
分区表可以更多地控制数据存放的位置。 下面的INSERT语句对合并表和下属表都可见:
合并表还有其他有趣的特性和限制,比如删除合并表或它的某个下属表。删除合并表让所有的"子表"都变得不可访问,但是删除其中的某个子表有不同的影响,它的行为和操作系统有关。例如,在GNU/Linux上,子表的文件描述符还保持开启的状态,并且表还继续存在,但是只能从合并表中访问。
还有一些另外的局限性和特殊行为。最好的办法是阅读手册,但是在这儿要说的是REPLACE并不能在所有的合并表上工作,并且AUTO_INCREMENT不会像你期望的那样工作。 2. 合并表对性能的影响
下属表读取的顺序和CREAT TABLE语句中定义的一致。如果经常需要按照特定的顺序取得数据,可以利用这种特性使合并排序操作更快。 3. 合并表的长处
因为合并表没有隐藏下属的MyISAM表,所以它提供了一些分区表无法提供的特性: 一个MyISAM表可以包含很多合并表。 可以通过拷贝.frm、.MYI、.MYD文件在服务器之间拷贝下属表。 可以轻易地把更多的表添加到合并表中。这只需要创建一个新表并且更改合并定义即可。 可以创建只包含想要的数据的临时合并表,例如某个特定时间段的数据。这是分区表无法做到的。 如果想对某个表进行备份、恢复、更改、修复,或者其他的操作,可以把它从合并表中移除,完成所有的工作之后再把它加回来。 可以使用myisampack压缩某些或所有的下属表。 分区表正好相反,MySQL隐藏了分区表的分区,并只能通过分区表访问所有的分区 |
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....