
CREATE TABLE t (c1 INT, c2 INT, c3 INT);INSERT INTO t VALUES (1, 2, 3);
-- 列ストレージコメント(推奨、全インデックス)CREATE TABLE t (c1 INT, c2 INT, c3 INT) COMMENT='COLUMNAR=1';
-- 列ストレージコメント(推奨、全インデックス)ALTER TABLE t COMMENT 'COLUMNAR=1';
-- SHOW CREATE TABLE t FULLCREATE TABLE `t` (`c1` int DEFAULT NULL,`c2` int DEFAULT NULL,`c3` int DEFAULT NULL,COLUMNSTORE KEY `_default_csi_` (`c1`,`c2`,`c3`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='COLUMNAR=1'
-- 列ストレージコメント(推奨)ALTER TABLE t COMMENT 'COLUMNAR=0';
-- 列ストレージキーワード(固定フィールドインデックス csi (c1,c2,c3))CREATE TABLE t (c1 INT, c2 INT, c3 INT, COLUMNSTORE INDEX csi);
-- 列ストレージキーワード(固定フィールドインデックス csi (c1,c2,c3))ALTER TABLE t ADD COLUMNSTORE INDEX csi;
-- 列ストレージキーワードで作成されたインデックス名ALTER TABLE t DROP KEY `csi`;
-- 小データ量テスト設定です。本番システムでは必ず意味のある値を使用してください。-- SET columnstore_cost_threshold = 0;-- explain analyze ...-- explain format=tree ...select max(col1) from t1 where col2 < col3;
| physical_plan -> Ungrouped Aggregate: max(#0)-> Projection: col1 (rows=1)-> Projection: #11 (rows=1)-> Projection: NULL #6 NULL #5 NULL #4 NULL #3 NULL #2 NULL #1 NULL #0 NULL (rows=1)-> Projection: NULL #2 NULL #1 NULL #0 NULL (rows=1)-> Csi Scan Table: test.t1 Projections: col2 col3 col1 (rows=1)
ALTER TABLE table_name RENAME index old_index_name to new_index_name;
SELECT a FROM t IGNORE INDEX (csi);
SELECT a FROM t FORCE INDEX (csi);
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: 0MySQL [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)
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)
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)
Esta página foi útil?
Você também pode entrar em contato com a Equipe de vendas ou Enviar um tíquete em caso de ajuda.
comentários