MySQLMergestorageengine
合并存储引擎MyISAM数据表将一组作为一个逻辑单元,允许我们查询他们在同一时间。的MyISAM数据表构成的合并数据表必须具有相同的结构的成员,每个成员的数据列必须以相同的顺序定义相同的名称和类型,和指数也必须以相同的顺序定义和相同的方式。合并存储引擎允许一组存储引擎MyISAM和相同的表结构的使用(例如,序列,定义每个表的字段,字段名、字段类型、指标定义的方式必须相同)数据表到一个表,方便查询数据。
假设有四张日记录log_2004,log_2005,log_2006和log_2007。这些数据是每年的数据。表结构如下(YY代表年)。
创建表(log_yy
DT的日期不为空,
varchar(100)不为空的信息,
指数(dt)
MyISAM引擎=);
通过将SQL语句作为逻辑单元一起到表中:
创建表log_merge(
DT的日期不为空,
varchar(100)不为空的信息,
指数(dt)
发动机=合并)联盟=(log_2004,log_2005,log_2006,log_2007);
描述:发动机的期权的价值必须合并;结合选项列表的所有表将包含在log_merge数据表。当log_merge表被创建,它可以像一个正常的表的查询,但是查询将根据每个成员的数据表,例如,查询这些日志数据表中的行的总数:
select count(*)从log_merge;
例如,每年有多少日志记录:
选择年(DT)Y、计数(*)从log_merge组条目;
表创建合并存储引擎还支持删除和更新操作,插入操作是比较麻烦的,因为MySQL需要知道其中的成员应插入新数据线。在定义合并存储引擎的数据表可以包含在一个insert_method选项(MYSQL4.0支持),此选项的值是没有的,第一,三,其次是它的意思是禁止的插入操作,数据行插入第一个表联合或数据行插入到表中的最终结合。例如,下面的SQL语句中指定新的数据添加到数据表的log_2007 -它是由联盟选择上市的最后表:
创建表log_merge(
DT的日期不为空,
varchar(100)不为空的信息,
指数(dt)
发动机=合并)联盟=(log_2004,log_2005,log_2006,log_2007)
最后insert_method =;
创建一个新的成员数据表log_2009让它有相同的表结构,然后修改log_merge表包括log_2009。
创建表log_2009像log_2008;
修改表log_merge
工会=(log_2004,log_2005,log_2006,log_2007,log_2008,log_2009);
注意:使用合并合并表的表结构最好不要有主键,否则会发生:共有两个成员,主键存在于两个表中相同的情况下,但根据同一SQL查询编写主键值,只能在数据表中的第一表联合列表中找到。
mysqlmerge存储引擎的一个小编辑为大家介绍这么多,希望对你有帮助!