使用Merge存储引擎实现 mysql分表
2017-10-18 13:22
330 查看
分表就是把N条记录的表,分成若干个分表,各个分表记录的总和仍为N。
分表的方法有很多,用merge来分表,是最简单的一种方式.
Merge表的优点:
A: 分离静态的和动态的数据
B:利用结构接近的的数据来优化查询
C: 查询时可以访问更少的数据
D:更容易维护大数据集
E: 可以通过修改.mrg文件来修改Merge表,当然也可以用alter进行修改,修改后要通过FLUSH TABLES刷新表缓存,此法可以动态增加减少子表
merge是mysql的一种存储引擎,它把一组MyISAM数据表当做一个逻辑单元.
另外,创建分表也可以用like,如:CREATETABLEt2liket1;
对应定期分表的情况下,只要定期相应的增加一个基础表,再修改merge表中的union就行了(ALTERTABLEtbl_nameUNION=(...))。
如在增加一个表(需和其他基础表一样的结构):
CREATE TABLE t3(a INT NOT NULL AUTO_INCREMENT PRIMARYKEY,message CHAR(20));
ALTER TABLE total UNION=(t1,t2,t3)
INSERT_METHOD=LAST;表示插入的方法,INSERT_METHOD的值可以是FIRST(插入第一个表),LAST(最后一个表),NO(不能插入)
查询的时候,和平常一样
select * from total where....
merge表会自动找到相应的基础表进行查询。
需要注意的是merge表并不维护“唯一性”检查,唯一性有各基础表完成。所以插入新的记录时候可能和其他基础表的内容重复。所以再插入去需要用代码进行唯一性检查。
不能直接删除一个分表,这样会破坏merge表。正确的方法是:
alter table t ENGINE=MRG_MyISAM UNION=(t1) INSERT_METHOD=LAST;
drop table t1
分表的方法有很多,用merge来分表,是最简单的一种方式.
Merge表的优点:
A: 分离静态的和动态的数据
B:利用结构接近的的数据来优化查询
C: 查询时可以访问更少的数据
D:更容易维护大数据集
E: 可以通过修改.mrg文件来修改Merge表,当然也可以用alter进行修改,修改后要通过FLUSH TABLES刷新表缓存,此法可以动态增加减少子表
merge是mysql的一种存储引擎,它把一组MyISAM数据表当做一个逻辑单元.
CREATE TABLE t1 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, message CHAR(20))engine=myisam ; CREATE TABLE t2 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, message CHAR(20))engine=myisam ; CREATE TABLE total (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, message CHAR(20)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST即创建表的语句制定引擎即可:engine=myisam
另外,创建分表也可以用like,如:CREATETABLEt2liket1;
对应定期分表的情况下,只要定期相应的增加一个基础表,再修改merge表中的union就行了(ALTERTABLEtbl_nameUNION=(...))。
如在增加一个表(需和其他基础表一样的结构):
CREATE TABLE t3(a INT NOT NULL AUTO_INCREMENT PRIMARYKEY,message CHAR(20));
ALTER TABLE total UNION=(t1,t2,t3)
INSERT_METHOD=LAST;表示插入的方法,INSERT_METHOD的值可以是FIRST(插入第一个表),LAST(最后一个表),NO(不能插入)
查询的时候,和平常一样
select * from total where....
merge表会自动找到相应的基础表进行查询。
需要注意的是merge表并不维护“唯一性”检查,唯一性有各基础表完成。所以插入新的记录时候可能和其他基础表的内容重复。所以再插入去需要用代码进行唯一性检查。
不能直接删除一个分表,这样会破坏merge表。正确的方法是:
alter table t ENGINE=MRG_MyISAM UNION=(t1) INSERT_METHOD=LAST;
drop table t1
相关文章推荐
- 使用Merge存储引擎实现 mysql分表
- 使用Merge存储引擎实现MySQL分表
- 使用Merge存储引擎实现MySQL分表
- Mysql的Merge存储引擎实现分表查询
- MySQL 使用MRG_MyISAM存储引擎来实现分表
- 使用EntityFrameworkCore实现Repository, UnitOfWork,支持MySQL分库分表
- mysql使用MRG_MyISAM(MERGE)实现水平分表
- mysql使用MRG_MyISAM(MERGE)实现水平分表
- [每日一答] [20151017] MySQL 使用 MRG_MyISAM 存储引擎来实现分表
- mysql使用MRG_MyISAM(MERGE)实现水平分表
- mysql使用MRG_MyISAM存储引擎实现水平分表
- MySQL 使用 MRG_MyISAM 存储引擎来实现分表
- 通过MERGE存储引擎实现mysql分表
- Mysql的Merge存储引擎实现分表查询
- MySQL利用MERGE存储引擎来实现分表
- 使用Mysql charset 实现SQL注入
- MySQL 备份和恢复策略四:使用主从复制机制(replication)实现数据库实时备份
- 使用MySQL-Proxy实现数据库读写分离
- MySQL中使用case when 语句实现多条件查询的方法
- 使用mysql 数据库的mysqldump实现自动备份