tencent cloud

TDSQL-C for MySQL

動向とお知らせ
製品アップデート
製品お知らせ
初心者ガイド
製品概要
プロダクト概要
製品の強み
適用シーン
製品アーキテクチャ
製品仕様
インスタンスタイプ
製品機能一覧
データベースのバージョン
リージョンとアベイラビリティゾーン
基本概念
利用制限
利用ガイドの推奨事項
自社開発カーネル
カーネル概要
カーネルバージョンのアップデート情報
カーネル最適化バージョン
機能特性
パフォーマンス関連機能
セキュリティカテゴリの機能
安定性機能
分析エンジン特性
カーネル問題のチェックと修復
購入ガイド
課金概要
製品価格
クラスタを作成する
構成変更説明
未払いについての説明
継続支払いの説明
返金ポリシー
従量課金から年/月単位サブスクリプションへの変換
従量課金からServerlessへの変換
付加価値サービスの課金説明
料金請求書の確認
クイックスタート
データベース監査
概要
監査インスタンス一覧
監査サービスを有効化する
監査ログの確認
ログ配信
事後アラーム設定
監査ルールの変更
監査サービスを変更する
監査サービスを停止する
監査ルールテンプレート
監査タスクの照会
サブユーザーへのデータベース監査利用権限付与
Serverlessサービス
Serverless入門
サーバーレス版クラスタの作成と管理
伸縮性スケーリング管理ツール
Serverlessリソースパック
マルチAZデプロイ
設定を変更する
よくあるご質問
Serverlessコスト見積ツール
操作ガイド
操作概要
コンソールでのクラスタページビューの切り替え
データベース接続
インスタンス管理
設定を変更する
インスタンス形態管理
クラスタ管理
読み取り専用インスタンス管理 
データベースプロキシ
アカウント管理
DMC
DMC(データベース管理ツール)
パラメータ設定
マルチAZデプロイ
グローバルデータベース
バックアップとリストア
操作ログ
データマイグレーション
パラレルクエリ
列ストレージインデックス CSI
分析エンジン
データベースセキュリティと暗号化
モニタリングとアラーム
SQLの基本操作
以下のコマンドを実行して、TDSQL-C for MySQLに接続してログインします
Tag
実践チュートリアル
TDSQL-C for MySQL データベース監査の等級保護実践
非InnoDBテーブル問題のワンクリック移行検出処理方法
DTSによるデータベースバージョンのアップグレード MySQL 5.7から8.0へ
TDSQL-C for MySQL 使用規範
新版コンソール
データベースプロキシの複数接続アドレスによる複数ROグループの実現
データベースプロキシのメリット
ストレージの課金モードの選び方
DTSによるリモートディザスタリカバリの構築
クラスタ用VPCの作成
データ復旧の方法
CPU使用率の高騰問題の解決方法
サブユーザーへの監視データ閲覧権限付与方法
ホワイトペーパー
セキュリティホワイトペーパー
性能ホワイトペーパー
トラブルシューティング
接続関連
性能関連
よくあるご質問
基本概念
購入と課金
サポートされるフォーマット
接続とネットワーク
機能特性
コンソールの操作
データベーステーブル
パフォーマンスとログ
データベース監査
TDSQL-C for MySQLとTencentDB for MySQLの違い
関連契約
SLA
利用規約
TDSQL-C ポリシー
プライバシーポリシー
データ処理と安全プロトコル
汎用参考
標準と認証
用語一覧
お問い合わせ

基本設定

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-30 16:46:22
本稿では、列ストレージインデックスCSIの関連操作についてご紹介します。

前提条件

カーネルバージョンは TDSQL-C for MySQL 8.0 バージョン3.1.14以上です。
説明:
読み取り専用インスタンスの場合、バージョン要件を満たす条件下で、4コア以上の読み取り専用インスタンスのみ列ストレージインデックス機能を有効化できます。

CSIを有効化するまたは無効化する

1. クラスタリストページで、実際に使用しているビューモードに応じて、インスタンス詳細ページに入ります。
タブビュー
リストビュー
1. ログインし TDSQL-C for MySQLコンソール、左側のクラスタリストで、対象クラスタをクリックし、クラスタ管理ページに入ります。
2. クラスタの詳細でターゲットインスタンスを確認し、インスタンスIDの後の詳細をクリックすると、インスタンス詳細ページに移動します。
1. TDSQL-C for MySQLコンソールにログインし、クラスタリストで文字セットを変更する必要があるクラスタを見つけ、クラスタIDをクリックしてクラスタ管理ページに入ります。
2. クラスタ管理ページで、インスタンスリストタブを選択し、列ストレージインデックスを有効化または無効化する読み取り専用インスタンスを見つけ、インスタンスIDをクリックしてインスタンス詳細ページに入ります。
2. インスタンス詳細ページのインスタンス形態の横にある編集アイコンをクリックします。

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] ON table_name[(col1, col2,...)];
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ヒントステートメント

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 TABLE
explain format=tree
説明:
列CSIを有効にした後、CSIインデックスの作成状況を確認するには、explain format=treeを使用して実行計画のオペレータにCOLUMNSTOREプレフィックスがあるかどうかを確認することもできます(存在する場合、オペレータが列指向実行を採用していることを示します)。これにより、当該オペレータが列指向実行を使用しているかどうかを判断できます。format=treeを指定した場合のみCOLUMNSTOREプレフィックスが表示され、フォーマットを指定しない場合はデフォルトでCOLUMNSTOREは表示されません。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック