Mysql分表大概有三种方法,我最推荐的是使用merge引擎
先建表:
mysql>其中t1,t2是分表CREATE TABLE t1 (
->a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
->message CHAR(20)) ENGINE=MyISAM;
mysql>CREATE TABLE t2 (
->a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
->message CHAR(20)) ENGINE=MyISAM;
mysql>INSERT INTO t1 (message) VALUES ('Testing'),('table'),('t1');
mysql>INSERT INTO t2 (message) VALUES ('Testing'),('table'),('t2');
mysql>CREATE TABLE total (
->a INT NOT NULL AUTO_INCREMENT,
->message CHAR(20), INDEX(a))
->ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
total是t1,t2两个表所有的数据
查询的时候
select * from toal
表面上看和普通表一样,其实上这个查询进行Mysql分表查询,只是对于操作者透明而已
插入的话也是
insert into total(message)values('message');
会默认插入LAST表,也就是t2表
这种分表方法必须定期维护.....
定期新建表,痛苦
下一章我研究下Mysql集群