tidb中如何分表呢?

tidb中如何分表呢?

参考官方文档看看

create table PARTITION BY. PARTITION BY要用主键的字段

CREATE TABLE t (c int) SHARD_ROW_ID_BITS = 4 PRE_SPLIT_REGIONS = 4;

Range 分区、Range COLUMNS 分区、List 分区和 List COLUMNS 分区可以用于解决业务中大量删除带来的性能问题,支持快速删除分区。
Hash 分区和 Key 分区可以用于大量写入场景下的数据打散。与 Hash 分区相比,Key 分区支持多列打散和非整数类型字段的打散。

要不要用哈希分表呀!核心就是靠 SHARD_ROW_ID_BITS = 4 把数据打散到 16 个分片(2^4),PRE_SPLIT_REGIONS = 4 会提前分好 4 个 Region,避免后续热点。

如果是按时间 / 范围分表,直接用 PARTITION BY RANGE 更顺手,比如按日期分区存日志数据,查的时候只扫对应分区,速度更快~ 你是想按啥维度分表呀?

使用分布式的数据库,还有必要使用分表吗,

如果用hash分区, 如果我要删除一段时间的数据, 没办法多个程序同时处理. 如果按某个属性分区, 我可以按属性同时跑, 这样更快

分区就好,分表程序也不好处理.

分区表建议查阅官网的分区表部分介绍

跟mysql一样的分表处理就好