关于mysql分表,merge存储引擎和分区的应用场景
分表太常见了,一般数据量大点的,大家都会用到分表。
mysql5.1之后就自带了分表的功能也就是分区,分区和分表的思路我觉得应该是一样的,将大数据文件分割成多个小文件,来加快数据的检索,当然写的速度也会提高。关键问题是分区对外来看是透明的。将现有的数据表分区,程序方面不需要任何改动,相反分表的话,需要大量的改动,而且还要结合不同的业务需求分表的方法也不一样。 所以我的第一个疑问就是,分区有这么大的优势,为什么缺很少被提及和使用?难道是性能方面有不足之处?
第二个疑问,分表的时候,比如说对论坛帖子数据表进行分表,就以我以前公司的做法为例。有一个总表,存放帖子的基本信息,比如标题、作者id、作者名、创建时间、最后更新时间、板块等一些会在帖子列表检索时用到的字段,而其余的信息比如帖子正文则放在分表的子表中(子表中也有总表的所有字段)。每个子表数据量一样,比如15w条数据,大于15w就会存到下一个子表中。 这个设计必须要那个总表,而且这个总表的数据量是所有帖子的总和,数据量可能千万。 这个时候为什么不使用merge存储引擎呢?(当然这里假定帖子列表都是myisam引擎),如果使用merge引擎的话,就不需要维护这个总表。
kenene
11 years, 9 months ago