
# 分区表常见问题
本章节介绍TaurusDB分区表的常见问题。
#### TaurusDB一张表最多支持多少个分区？
最多支持8192个分区。如果定义了二级分区，则是所有分区的总和最多支持8192个。
#### 分区表创建多少个分区比较合适？
在满足分区不超过8192个的前提下，根据业务场景和数据量决定分区数。
#### 如何确定分区个数？
- RANGE分区 RANGE分区一般用于时间序列数据。分区粒度可以按照日/月/季/年来划分，按照业务确定数据保留周期，再结合分区粒度来计算分区个数。
  

- HASH分区 HASH分区将数据通过哈希函数均匀分散到指定数量的分区中。您可以在创建分区表时多尝试几个分区值，尽量找一个可以使得数据均衡分布的一个值作为分区值。以下命令可以辅助您来评估分区数量。
  - 查看按照ID值分为N个分区后每个分区的数量
    ```
    select id%N as part_id , count(1) from table_name group by id%N;
    ```
    
  
  - 查看每个ID值对应的数据量
    ```
    select id, count(1) as cnt from table_name group by id order by cnt desc;
    ```
    
  
  
  确定HASH分区个数关键因素有如下几点可参考：
  - 写入吞吐量与单分区写入上限 N_min = max( 总写入TPS/单分区TPS上限 , 总数据量/单分区容量上限 )
    单分区建议写入 ≤ 2000 TPS。
    
  
  - 总数据量与单分区数据量 即使写入均匀，如果总数据量极大，但单分区扫描时间仍然很长。建议单分区数据量小于5000万行。
    计算公式如下：
    分区个数 = 预期总数据量 / 单分区推荐容量
    
  
  - 并行查询效率 HASH分区可以并行扫描所有分区。但是过度分区会带来调度开销，请您谨慎选择。
    
   
 
