【 TiDB 使用环境】Poc
【 TiDB 版本】6.1.3
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
问题说明:不同的股票有不同的记录数,想要通过划分分区 使得数据可以均匀的入库,有些code有20多条记录。而有的股票只有1条记录、
有尝试使用 Range 分区,但是报错了…请教像这种情况使用那种分区类型分区比较合适。sql语法是。
code.xlsx (42.0 KB)
【 TiDB 使用环境】Poc
【 TiDB 版本】6.1.3
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
问题说明:不同的股票有不同的记录数,想要通过划分分区 使得数据可以均匀的入库,有些code有20多条记录。而有的股票只有1条记录、
有尝试使用 Range 分区,但是报错了…请教像这种情况使用那种分区类型分区比较合适。sql语法是。
code.xlsx (42.0 KB)
mysql要求主键必须包含分区键。
分区的好处是删除的时候按分区删会比较容易,还有就是冷热数据的分离。
如果没有这两块的需求,不如不要分区。tidb本来就是按照region分片的,会自动调度。
https://docs.pingcap.com/zh/tidb/stable/high-concurrency-best-practices#tidb-高并发写入场景最佳实践
如果是关于高并发写入的优化,看上面这个最佳实践。
评估下数据量,几亿这个量级就别用分区了
大佬,请教一下,如果查询的数据在一个region是不是比分布在多个region速度更快呀
分布在多个region快,如果读取集中在一个region上,是读取热点。可能是需要优化的。
https://docs.pingcap.com/zh/tidb/stable/troubleshoot-hot-spot-issues
https://docs.pingcap.com/zh/tidb/stable/dev-guide-use-follower-read#优化读热点
学习了
这个是表设计逻辑问题吧。你把一个varchar类型的字段,拿去转换成时间,然后又把时间拿去跟一个varchar类型字段做比较,肯定会报错了
我借楼 请教一个问题,我 也有张业务大表,现在 分区创建好了。然后我 有个新的查询,想要 先找分区 ,再 走 索引查询 ,应该怎么办
默认会先做分区裁剪的,但如果你要指定访问某些分区的话可以用 select * from t partition(p0, p1)
这样就行
我 这个业务表 是刚做了分区的。为了删除方便。 就是加了分区后,我之前的查询慢了。我之前查询 的索引 应该怎么建立 一般都包含分区字段
那没有办法,肯定会慢的,特别是查询返回的结果数据量小的情况下,因为查询时要访问的分区变多了,会导致 RPC 数量增加。
看数据量,没有几十亿就别用分区表
tidb分区表除了删除大量数据方便,再也没啥优点,BUG还多
走裁剪了,只访问了 pGame34 这个分区,但没走 index,走的是全表扫
我还没有创建这个索引。 我创建个 普通的索引就行了吧。对这些字段。不用创建全局索引
嗯 普通索引就行了 全局索引现在只支持 unique index,在分区已经裁剪到 1 个的情况下,普通索引和全局索引的性能可以认为是差不多的
TableRangeScan不是走的主键的范围查询?执行计划里没有体现走的是全表扫描吧
涨知识了,赶紧每次看这些论坛问题都会有一些提升。