【发布时间】:2012-12-27 10:43:46
【问题描述】:
我已经实施了一个基准测试来测试对 10 个不同表的读写持久性。
我有 10 个 java 线程,每个线程只对其表执行查询:
线程 1 对 Table1 执行操作, 线程2对Table2进行操作,
我已经比较了在非分区表 [1-10] 上并行运行这些线程执行多个读取的性能,与将每个 TableX 分区为 9 个相等分区时相同基准测试的性能(每个代表一周的测量,总共 9 周的数据)。
我收到了有趣且无法解释的结果:
单个线程的单个操作的性能对于非分区表来说是两倍,而所有线程的所有操作的总时间对于分区表来说是快了 5 倍。
我查看了日志,发现分区表可以并行更多的操作,虽然单个操作更长,但不同线程的多个操作是并行的,因此完成得更快。
我不明白为什么会这样,因为每个线程只在自己的表上执行操作???
我只对我的所有表和分区使用 MyISAM 引擎。
【问题讨论】:
标签: mysql performance parallel-processing data-partitioning