阿里云搞活动,想要抓紧买:https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=4hy76kwx
今天给大家分享一下mysql分表的使用方法。
如果mysql数据量比较大,那么就会导致访问速度越来越慢,为此我们把占有空间较大的表进行分表处理,缓解一下单个表太大导致的压力。
mysql为我们提供了一个单独的引擎:MRG_MyISAM,可以进行分表处理,下面先上sql语句
CREATE TABLE IF NOT EXISTS `table1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS `table2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
INSERT INTO `table1` (`name`) VALUES('name1');
INSERT INTO `table2` (`name`) VALUES('name2');
CREATE TABLE IF NOT EXISTS `uTable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
INDEX(id)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 UNION=(table1,table2) INSERT_METHOD=LAST AUTO_INCREMENT=1;
select id,name from uTable;
INSERT INTO `uTable` (`name`) VALUES('name4');
使用方法:1 .首先建一个分表:table1,然后建操作表:uTable
2. 等到table1的表数据满足一定的条件(数量很多或者空间较大了),重新建一个表table2, 重建uTable表。
3. 以此类推。
注意:分表只是用来存储数据,不要直接操作,平时读取查询插入操作只通过uTable表即可。
讨论:在实际应用中,如何判断分表是否满足一定的条件从而新建新的分表呢,大家有什么效率更高的办法,欢迎给我留言,谢谢!
阿里云搞活动,想要抓紧买:https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=4hy76kwx