暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Polar for Mysql 列存索引常用方法

原创 手机用户5878 2023-07-24
464

添加列存索引
创建表:

CREATE TABLE t10(
  col1 INT COMMENT 'COLUMNAR=1',
  col2 DATETIME COMMENT 'COLUMNAR=1',
  col3 VARCHAR(200)
) ENGINE InnoDB;

修改表:

查看最后执行SQL

-- 查看最后执行SQL 阈值
SHOW STATUS LIKE 'Last_query_cost';
-- 查询cost阈值
SHOW VARIABLES LIKE 'imci_ap_threshold';

查看表是否列存索引

SELECT * FROM INFORMATION_SCHEMA.IMCI_INDEXES WHERE TABLE_NAME LIKE '%by_wechat_message%';

检查执行SQL 字段缺少列存索引

CALL dbms_imci.check_columnar_index("
    SELECT 
            domain, subject_id AS subjectId, 
            SUM(question_num) AS questionNum , 
            SUM(tk_question_num) AS tkQuestionNum 
    FROM `ask_question_statistic` 
    WHERE dt >= 20230501 AND dt <= 20230531 
    GROUP BY domain, subject_id
");

强制执行列存查询

SELECT /*+ SET_VAR(cost_threshold_for_imci=0) */
        domain, subject_id AS subjectId, 
        SUM(question_num) AS questionNum , 
        SUM(tk_question_num) AS tkQuestionNum 
FROM `ask_question_statistic` 
WHERE dt >= 20230501 AND dt <= 20230531

设置并列索引 =16
-- 后台控制

innodb_polar_parallel_ddl_threads = 16;

-- 查看是否开启并列查询

SHOW VARIABLES LIKE "innodb_polar_parallel_ddl_threads"

查看列存索引创建状态

-- 表中查看索引的状态信息;
SELECT * FROM INFORMATION_SCHEMA.IMCI_INDEXES;
-- 表中查看索引的写入速度;
SELECT * FROM INFORMATION_SCHEMA.IMCI_INDEX_STATS;
-- 参见查看DDL执行速度和进度
SELECT * FROM INFORMATION_SCHEMA.IMCI_ASYNC_DDL_STATS;

●并行DDL
https://help.aliyun.com/document_detail/193259.html?spm=a2c4g.172533.0.i1
●列存索引排序
https://help.aliyun.com/document_detail/602366.html?spm=a2c4g.607775.0.0.7d9418a8RmlFbt


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论