公司项目有用到分表,考虑到分表对于查询效率的影响,进行了测试,测试过程不列举,这里记录下自己测试的结果,以及自对单表和分表,三种引擎的看法.
这个是基于我自己的电脑测试结果,仅代表自己的看法.在数据库上分库分表上的知识远远不够,这些结论肯定不成熟,我会持续完善!
一.单表和分表查询效率对比
1.数据量及查询时长
数据量 | 单表 | 多表 |
10w | 0.24 | 0.31 |
20w | 0.47 | 0.63 |
30w | 0.74 | 0.98 |
60w | 1.5 | 2 |
150w | 4.2 | 9 |
2.结论
分表后,效率降低,数据量越大,分表查询效率越低.100w的数据量的时候,耗时差距在1倍.
但是分表提高了插入的效率.
二.Merge引擎对分表效率的影响
1.merge引擎的使用
必须union的分表为MyISAM引擎才能生效
2.效率影响
根据对Merge引擎的测试发现,单表效率>Merge引擎查询效率>分表union all查询效率
100w数据量的情况下,耗时单位比为 2:3:4左右
三.MyISAM和Innodb引擎
对于查询而言,一直的说法是 MyISAM的查询效率率Innodb高,但是从实际测试角度,并无太大差别.