tidb集群在单表亿级别数据下如何提高查询性能,目前我的方案第一个是对单表进行按时间分区,查询都带上时间或者分区信息,第二就是增加tikv的节点个数。当前集群配置是官方标准配置,希望能有人解惑一下?
主要看具体性能要求,业务能接受分区裁剪来优化最好
使用tiflash列存试试,快到你爽
集成TiFlash组件作为二级存储,提供列式存储和更高效的分析查询能力
偏分析可以试一下tiflash
查询统计用tiflash;
合理表设计和索引设计,可以提高性能
tiflash列存.
该亿级表涉及到与其他百万级表做join连接查询,走了索引,但不是覆盖索引,耗时平均在8s左右,看回复有说使用tiflash的,这种可以将就join查询优化到毫秒级别或者2s以内吗
使用tiflash列存,毫秒级没啥问题
要查询的数据量多吗?是汇总类需求,还是要展示很多数据?
区分没有,先试试tiflash
先试试tiflash
上tiflash
如果是分析型表,可以添加tiflash组件,比你添加时间分区和tikv节点效率要高
不多 要么有分页 要么有范围 最多几十条吧
从规范性建议分库分表
建议使用tiflash,列式存储,适合分析。
分页的话,如果是从返回很多数据中抽取一部分数据返回,多表 Join 的分页语句,如果过滤条件在单个表上,内查询语句必须走覆盖索引,先分页,再 Join
范围的话,可能需要在对应字段上加上索引。如果已经有索引,可以考虑根据对应字段建立分区,走分区裁剪试一下。
mark,如果是oltp任务如何优化查询
主要不是考虑条数,考虑的是列数和是否是聚合查询,列存的tiflash对聚合查询效果特别明显