一,故事背景。
某一天,几位大哥找小Q说:小Q,最近我们要做数据分区和分表的测试,这个任务就交给你了。小Q内心是紧张的:mysql学习还没开始,分区分表的测试居然交给了我。不过,想着反正也没学过,趁着机会学学看。小Q就答应下来了。开始项目分区分表测试。
二,测试阶段。
明确了测试任务后,小Q就开始屁颠屁颠地准备测试阶段
- 1,第一阶段。
- 1)从DAO层的sql语句开始。测试分区和不分区之间的性能区别。比较两者的数据。
- 2,第二阶段。
- 1)由于第一阶段的测试并不怎么尽人意,没有看到网上所说的分区性能会更加好。为了弄明白为什么会这样,也就只能深入到mysql的层级,把sql语句一个个地执行。
- 3,第三阶段。
第二阶段的分区也并没有看到分区后的性能会更加好,而且还会出现分区之后有一些sql是分区比不分区的耗时会更加长,而这些sql是只在分区后的某一个区进行查询。这也是不怎么符合原理的地方啊。为了弄清这些情况。只能更加深入地了解。
- 1) 弄清楚第二阶段的sql为什么会出现那种情况。为什么分区的数据库在一个区中的查询反而会比不分区更加慢。
- 2)重新建立2100万的数据,然后这些数据分为3个区,重新测试分区与不分区的性能差别。
- 3)对新建的2100W万的数据,分为3个表。测试分表和原始表以及分区的性能差别。
在这三个阶段之后将会决定之后的因为是分区还是分表。