更新时间:2023-12-29 GMT+08:00
分享

单表点查询性能差

问题现象

单表查询的场景下,客户预期1s以内返回结果,实际执行耗时超过10s。

原因分析

这种场景属于行列存表选择错误导致的问题,这种场景应该使用行存表+btree索引。

分析过程

  1. 通过抓取问题SQL的执行信息,发现大部分的耗时都在“CStore Scan”。

  2. 分析出问题的场景:基表是一张十亿级别的表,每晚有批量增量数据入库,同时会有少量的数据清洗的工作。白天会有高并发的查询操作,查询不涉及表关联,并且返回结果都不大。

处理方法

  1. 调整表定义,表修改为行存表,同时建立btree索引,索引建立的原则:

    1. 基于充分分析客户SQL的背景下去建立索引。
    2. 索引要建立的刚刚好,不要有冗余。
    3. 建立组合索引时候,要把过滤性比较好的列往前放。
    4. 尽可能多的过滤条件都用到索引。

分享:

    相关文档

    相关产品