全部產品
Search
文件中心

PolarDB:快速體驗列存表

更新時間:May 01, 2026

本文介紹如何快速開啟和試用PolarDB MySQL版的列存表分析功能

適用範圍

您的叢集版本需為MySQL 8.0.2,且核心小版本需為8.0.2.2.34及以上版本。

開通列存表分析功能

存量叢集開啟列存分析

說明

PolarDB MySQL版的列存表分析功能僅支援MySQL 8.0.2,核心小版本需在8.0.2.2.34及以上。如果版本條件不滿足,請先升級核心小版本,再開啟列存表分析功能。

  1. 登入PolarDB控制台,在左側導覽列單擊集群列表,選擇叢集所在地區,並單擊目的地組群ID進入叢集詳情頁。

  2. 基本信息頁面,單擊列存表分析加速右側的开启按鈕。等待叢集重啟後,列存表分析功能將會開啟。

新購叢集開啟列存分析

  1. 登入PolarDB控制台,在左側導覽列單擊集群列表,選擇叢集所在地區,單擊创建新集群

  2. 在購買頁面,主要配置以下幾項:

    1. 创建方式创建主集群

    2. 引擎版本:MySQL 8.0.2

    3. 列存表分析加速:開啟

  3. 根據您的實際業務,填寫其他選項併購買即可。更多說明,請參見自訂購買

快速體驗

開啟列存表加速後,建表語句指定儲存引擎和儲存格式,預設就會建立列存表。以下樣本展示如何建立列存表、大量匯入資料並執行分析查詢。

步驟一:建立列存表

執行以下SQL語句建立一張列存表。

CREATE TABLE sales_records (
  sale_id INT PRIMARY KEY AUTO_INCREMENT,
  product_id INT NOT NULL,
  region VARCHAR(50),
  sale_date DATE,
  amount DECIMAL(10, 2)
);

步驟二:建立預存程序大量匯入資料

建立預存程序,匯入100萬行記錄,每5000條提交一次。

DELIMITER //

CREATE PROCEDURE InsertMillionRows()
BEGIN
    DECLARE i INT DEFAULT 1;

    SET autocommit = 0;

    WHILE i <= 1000000 DO
        INSERT INTO users (username, email, age)
        VALUES (
            CONCAT('user_', LPAD(i, 7, '0')),
            CONCAT('user_', LPAD(i, 7, '0'), '@test.com'),
            FLOOR(18 + RAND() * 50)
        );

        SET i = i + 1;

        IF i % 5000 = 0 THEN
            COMMIT;
        END IF;
    END WHILE;

    COMMIT;
    SET autocommit = 1;
END //

DELIMITER ;

步驟三:調用預存程序

執行以下語句調用預存程序,大量匯入資料。

CALL InsertMillionRows();

步驟四:執行聚集查詢

執行以下聚集查詢,驗證資料已成功匯入。

SELECT COUNT(*) FROM users;

預期返回結果如下:

+----------+
| COUNT(*) |
+----------+
|  1000000 |
+----------+
1 row in set (0.01 sec)

步驟五:查看列式執行計畫

使用EXPLAIN命令查看列式執行計畫,確認查詢走了列式引擎。

EXPLAIN SELECT COUNT(*) FROM users;

預期返回結果如下,Extra Info列中出現IMCI Execution Plan字樣,表示查詢使用了列式執行引擎。

+----+--------------------+-------+--------+--------+---------------------------------------------------------------+
| ID | Operator           | Name  | E-Rows | E-Cost | Extra Info                                                    |
+----+--------------------+-------+--------+--------+---------------------------------------------------------------+
|  1 | Select Statement   |       |        |        | IMCI Execution Plan (max_dop = 12, max_query_mem = 858993459) |
|  2 | └─Aggregation      |       |        |        |                                                               |
|  3 |   └─Table Scan     | users |        |        |                                                               |
+----+--------------------+-------+--------+--------+---------------------------------------------------------------+

配置行列執行分流

列存表核心情境是海量資料分析,結合列式儲存、向量化執行和並行計算技術,實現低成本、高效能的SQL計算。列存表的唯讀節點預設採用這種計算模型,它的限制是不能充分利用主鍵索引進行高並發點查。

如果業務同時需要高並發點查和複雜SQL分析,可通過建立不同的叢集串連地址(Endpoint)來隔離資源,兩類工作負載互不影響:

  • 複雜SQL分析:僅需增加普通的唯讀節點即可,並將參數loose_use_imci_engine設定為ON(預設值為ON),查詢自動走列式執行。

  • 高並發點查:將對應唯讀節點的loose_use_imci_engine參數設定為OFF,查詢將走行式執行以利用主鍵索引。

列存表叢集參數配置

開啟列存表分析加速選項後,會預設開啟X-Engine引擎,表格式預設是列存格式。以下為相關參數的預設配置:

參數名

說明

取值範圍

預設值

需重啟

loose_xengine

是否開啟高壓縮引擎(X-Engine)

[0-1]

1

default_storage_engine

叢集預設儲存引擎。

[InnoDB|xengine]

xengine

loose_xengine_default_storage_table_format

X-Engine引擎的預設表格式。

[default|row|column]

column

loose_polar_enable_imci_with_ctable

是否開啟列存表與列存索引(IMCI)執行引擎的聯動。

[ON|OFF]

ON

loose_imci_oss_enable_lru

是否開啟列存索引(IMCI)的OSS資料LRU緩衝。

[ON|OFF]

ON

loose_xengine_use_memory_pct

X-Engine引擎使用的記憶體百分比。

[5-95]

90

loose_xengine_ctable_use_memory_pct

X-Engine記憶體中分配給列存表分析功能的百分比。

[0-100]

80