详情页标题前

腾讯云TDSQL-C MySQL版基本设置

详情页1

本文为您介绍列存索引 CSI 的相关操作。

前提条件

提交工单 申请升级小内核版本至 TDSQL-C MySQL 版8.0 3.2.1。说明:针对只读实例而言,符合版本要求的情况下,4核以上的只读实例才可以开启列存索引功能。

开启或关闭 CSI

1. 在集群列表页,根据实际使用的视图模式进行进入实例详情页。页签视图列表视图1. 登录 TDSQL-C MySQL 版控制台,在左侧集群列表,单击目标集群,进入集群管理页。2. 在集群详情下,找到目标实例,单击实例 ID 后的详情,进入实例详情页。

腾讯云TDSQL-C MySQL版基本设置

1. 登录 TDSQL-C MySQL 版控制台,在集群列表,找到需要修改字符集的集群,单击集群 ID,进入集群管理页面。2. 在集群管理页面,选择实例列表页,找到要开启或关闭列存索引的读写实例或只读实例,单击实例 ID,进入实例详情页。

腾讯云TDSQL-C MySQL版基本设置

2. 在实例详情页的实例形态后,单击修改图标。

腾讯云TDSQL-C MySQL版基本设置

3. 在弹窗下,修改实例形态,单击确定即可。实例形态由行存调整为行列混存,表示开启列存索引 CSI。实例形态行列混存调整为行存,表示关闭列存索引 CSI。

创建 CSI

开启列存索引 CSI 后,建表相关的创建 CSI 命令如下:1. 创建表时创建 CSI

CREATE TABLE table_name (col1, col2,... COLUMNSTORE INDEX [index_name] [(col1, col2,...)]);

2. 创建表后创建 CSI

CREATE COLUMNSTORE INDEX [index_name] [(col1, col2,...)] ON table_name;ALTER TABLE table_name ADD COLUMNSTORE INDEX [index_name] [(col1, col2,...)];

删除 CSI

开启列存索引 CSI 后,删除列存索引 CSI 的命令如下:

ALTER TABLE table_name DROP INDEX index_name;

重命名 CSI

开启列存索引 CSI 后,重命名列存索引 CSI 的命令如下:

ALTER TABLE table_name RENAME index old_index_name to new_index_name;

列存索引 CSI HINT 语句

1. 强制执行行存执行/列存执行。强制执行行存执行

SELECT a FROM t IGNORE INDEX (csi);    

强制执行列存执行

SELECT a FROM t FORCE INDEX (csi);   

2. 同时使用 HINT 执行并行查询与列存索引。

SELECT /*+PARALLEL(2)*/ a FROM t FORCE INDEX (csi);

创建表和列存索引示例

CREATE TABLE t (a int, columnstore index csi (a));INSERT INTO t VALUES (0), (1), (2);SHOW CREATE TABLE t; SHOW INDEX FROM t;

执行结果如下:

MySQL [test]> CREATE TABLE t (a int, columnstore index csi (a));Query OK, 0 rows affected (0.01 sec)MySQL [test]> INSERT INTO t VALUES (0), (1), (2);Query OK, 3 rows affected (0.01 sec) Records: 3  Duplicates: 0  Warnings: 0 MySQL [test]> SHOW CREATE TABLE t; +-------+---------------------------------------------------------------------------------------------------------------+ | Table | Create Table                                                                                                  |+-------+---------------------------------------------------------------------------------------------------------------+| t     | CREATE TABLE `t` (   `a` int DEFAULT NULL,   COLUMNSTORE KEY `csi` (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |+-------+---------------------------------------------------------------------------------------------------------------+MySQL [test]> SHOW INDEX FROM t;+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+-------------+---------+---------------+---------+------------+| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type  | Comment | Index_comment | Visible | Expression |+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+-------------+---------+---------------+---------+------------+| t     |          1 | csi      |            1 | a           | NULL      |           1 |     NULL |   NULL | YES  | COLUMNSTORE |         |               | YES     | NULL       |+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+-------------+---------+---------------+---------+------------+1 row in set (0.00 sec)

INDEX HINT 使用

1. 强制语句使用列存索引。

SELECT a FROM t FORCE INDEX (csi);EXPLAIN FORMAT=TREE SELECT a FROM t FORCE INDEX (csi);

执行结果:

MySQL [test]> SELECT a FROM t FORCE INDEX (csi);+------+| a    |+------+|    0 ||    1 | |    2 |+------+3 rows in set (0.00 sec)MySQL [test]> EXPLAIN FORMAT=TREE SELECT a FROM t FORCE INDEX (csi); +---------------------------------------------------------------+| EXPLAIN                                                       |  +---------------------------------------------------------------+| -> COLUMNSTORE Index scan on t using csi  (cost=1.30 rows=3)  |+---------------------------------------------------------------+1 row in set (0.00 sec)

2. 强制语句不使用列存索引(行存执行)。

SELECT a FROM t IGNORE INDEX (csi);EXPLAIN FORMAT=TREE SELECT a FROM t IGNORE INDEX (csi);

执行结果:

MySQL [test]> SELECT a FROM t IGNORE INDEX (csi);+------+| a    |+------+|    0 ||    1 | |    2 |+------+3 rows in set (0.00 sec)MySQL [test]> EXPLAIN FORMAT=TREE SELECT a FROM t IGNORE INDEX (csi);+-----------------------------------------+| EXPLAIN                                 |+-----------------------------------------+| -> Table scan on t  (cost=0.55 rows=3)  |+-----------------------------------------+1 row in set (0.00 sec)

查看 CSI 索引创建情况

show create table TABLE说明:默认不显示 COLUMNSTORE 前缀,需要指定开关 columnstore_display_in_show_create=1,才会显示。show index from TABLEexplain format=tree说明:开启列 CSI 后,要查看 CSI 索引创建情况,也可通过 explain format=tree 查看执行计划算子是否有 COLUMNSTORE 前缀(有则表示算子采用了列式执行),来得知该算子是否使用列式执行。只有指定 format=tree 时,才显示 COLUMNSTORE 前缀,不指定格式则默认不显示 COLUMNSTORE。

官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/141109.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云容器镜像服务个人版接入 CAM 的 API 列表同尘

    命名空间相关接口 API 名称及描述 资源类型 资源六段式示例 CreateNamespacePersonal 创建个人版命名空间 repo qcs::tcr:$region:$account:repo/$namespace DeleteNamespacePersonal删除个人版命名空间 repo qcs::tcr:$region:$account:rep…

    腾讯云 2023年12月9日
  • 腾讯云对象存储创建模板

    功能描述 创建音频降噪模板。 授权说明 授权策略中 action 设置为 ci:CreateMediaTemplate 。查看所有 action。 服务开通 使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶。 使用限制 使用该接口时,请先确认相关限制条件。详情请参见 使用限制。 请求 请求示例 POST /template HTTP/1.1…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云TDSQL-C MySQL版产品概述

    TDSQL-C MySQL 版(TDSQL-C for MySQL)是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势,为用户提供具备高弹性、高性能、海量存储、安全可靠的数据库服务。TDSQL-C MySQL 版100%兼容 MySQL 5.7、8.0。实现超百万级 QPS 的高吞吐,最高 PB 级智能存储,保障数据安全可靠。…

    腾讯云 2023年12月9日
  • 腾讯云TDSQL-C MySQL版支持的语句场景和受限场景

    本文介绍并行查询能力支持的语句场景和受限场景。 兼容语句场景 TDSQL-C MySQL 版已经实现了具备如下特征的 SQL 语句的并行查询处理,并在逐渐完善更多的功能场景。对于单表扫描:支持全表扫描、索引扫描、索引范围扫描、索引 REF 查询等扫描类型的正序、逆序扫描。对于多表连接:支持 Nested Loop Join 算法以及 Semi Join、An…

    腾讯云 2023年12月9日
  • 阿里云RDS数据库PostgreSQL只读实例简介-云淘科技

    在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求,增加应用的吞吐量。 简介 创建只读实例时会从备实例复制数据,数据与主实例一致,主实例的数据更新也会在主实例完成操作后立即自动同步到所有只读实例。 …

    阿里云数据库 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。