mysql MERGE Storage Engine
mysql Merge 引擎只能用于myISAM表的合并。它能把几个相同结构的表合并成一个表来查询。而数据和索引都还在原表中储存。
假设需要记录视频每天的播放数量,但由于记录数太大,只能一天一张表来记录,如果需要查询一个月播放次数最多的10个视频。这个时候就可以创建一个merge表把一个中的30表联合成一张表,然后一条语句就能查询出来。
例子:
在mysql执行以下sql:
CREATE TABLE EXISTS `t1` (
`id` int(11) default NULL,
`value` int(11) default NULL
) ENGINE=MyISAM;
INSERT INTO `t1` (`id`, `value`) VALUES
(1, 2),
(2, 3);
CREATE TABLE `t2` (
`id` int(11) default NULL,
`value` int(11) default NULL
) ENGINE=MyISAM;
INSERT INTO `t2` (`id`, `value`) VALUES
(1, 3),
(2, 5);
CREATE TABLE IF NOT EXISTS `t` (
`id` int(11) default NULL,
`value` int(11) default NULL
) ENGINE=MRG_MyISAM UNION=(`t1`,`t2`) INSERT_METHOD=no;
然后执行
SELECT * FROM t;
SELECT id, COUNT(*) FROM t order by id;
