表分区调优
目的
表分区是指根据数据库根据分区键,将数据库表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。
表分区优势:
- 某些查询可以得到极大的优化,当where条件包含分区键条件,数据库可以根据分区键访问需要的分区表数据,这样可以减少访问的数据量,提升查询性能。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。
- 涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理,通过“并行”,这意味着该查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。
- 通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。
方法
表分区主要分为以下几类:range、list、hash、key。建议根据实际的业务模型,对相关表选择适合的方法进行分区。例如,在BenchmarkSQL TPC-C测试模型中,建议将ORDER_LINE表做hash分区,分区数量根据warehouse数量决定,建议每100个warehouse建一个分区。
父主题: 数据库调优