---
title: 表分区调优
description: "表分区是指根据数据库分区键，将数据库表分解成多个更小的，容易管理的部分。从逻辑上看，只有一张表，但是底层却是由多个物理分区组成。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/MariaDB/kunpengdbstune_05_0019.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/MariaDB/kunpengdbstune_05_0019.html
indexId: 83b99e79dd5eddf00134f082075ed8bc5912d5964b8b6e3130f05663d8ecac8973
---
# 表分区调优

#### 目的

表分区是指根据数据库分区键，将数据库表分解成多个更小的，容易管理的部分。从逻辑上看，只有一张表，但是底层却是由多个物理分区组成。

表分区优势：

1. 某些查询可以得到极大的优化，当where条件包含分区键条件，数据库可以根据分区键访问需要的分区表数据，这样可以减少访问的数据量，提升查询性能。因为分区可以在创建了分区表后进行修改，所以在第一次配置分区方案还不曾这么做时，可以重新组织数据，来提高那些常用查询的效率。
2. 涉及到例如SUM()和COUNT()这样聚合函数的查询，可以很容易地进行并行处理，通过“并行”，这意味着该查询可以在每个分区上同时进行，最终结果只需通过总计所有分区得到的结果。
3. 通过跨多个磁盘来分散数据查询，来获得更大的查询吞吐量。


#### 方法

表分区主要分为以下几类：Range、List、Hash、Key。建议根据实际的业务模型，对相关表选择适合的方法进行分区。例如，在BenchmarkSQL TPC-C测试模型中，建议将ORDER_LINE表做hash分区，分区数量根据warehouse数量决定，建议每100个warehouse建一个分区。
