全部產品
Search
文件中心

AnalyticDB:行存引擎

更新時間:Feb 10, 2026

AnalyticDB for MySQL行存引擎,是面向行存表的高並發即時引擎,適用於基於主鍵的高並發點查和多列投影的快速查詢。本文為您介紹AnalyticDB for MySQL行存引擎的使用方法。

前提條件

費用說明

  • 計算資源:隨用隨付,按照Serving資源群組的ACU數量和單價收費。

  • 儲存空間:隨用隨付,按照熱資料存放區空間價格收費。

詳細計費請參見產品定價

支援的資料類型

分類

資料類型

說明

布爾類型

  • boolean

取值:true、false

數實值型別

  • tinyint

  • smallint

  • int

  • bigint

  • float

  • double

當前不支援decimal,可以通過以下配置將decimal類型自動轉換為double,但會導致精度損失。

set ADB_CONFIG ROW_STORE_DECIMAL_TO_DOUBLE=true

字元類型

  • varchar

  • binary

  • blob

時間類型

  • date

  • time

  • datetime

  • timestamp

複雜類型

  • point

  • array<int>

  • array<array<int>>

  • map<varchar, int>

複雜類型只支援基本讀寫操作,資料實際以二進位形式儲存,可正常序列化,但無法參與函數運算。

支援以下資料類型作為主鍵:

  • 布爾類型:boolean

  • 數實值型別:tinyint、smallint、int、bigint

  • 字元類型:varchar、binary、blob

  • 時間類型:date、time、datetime、timestamp

使用說明

建立行存表

CREATE TABLE:指定ENGINE = 'row_store'

  • 主鍵:表中需指定主鍵,不支援為空白,最多支援4列。

  • 表欄位類型:不支援修改。

  • 索引:預設為主鍵列索引,可手動給其他列建立索引;字串類型,也可通過FULLTEXT INDEX建立全文索引。

  • 表生命週期:通過TTL管理表生命週期,最小單位為天。

建立樣本

CREATE DATABASE test_db;

CREATE TABLE test_db.row_store_table
(
    a int NOT NULL,
    b int,
    c varchar,
    PRIMARY KEY(a)
)
ENGINE = 'row_store'
TABLE_PROPERTIES = '{"row_store_ttl": 1}';

----手動建立索引----
CREATE TABLE test_db.row_store_table
(
    a int NOT NULL,
    b int,
    c varchar,
    PRIMARY KEY(a),
    INDEX c_idx(c),
    INDEX bc_idx(b, c)
)
ENGINE = 'row_store'

---建立全文索引---
CREATE TABLE  test_db.row_store_table
(
    a int NOT NULL,
    b int,
    c varchar,
    PRIMARY KEY(a),
    FULLTEXT INDEX c_idx(c),
)
ENGINE = 'row_store'

資料操作

支援以下操作:

  • INSERT INTO:主鍵重複時,忽略插入資料。

  • REPLACE INTO:主鍵重複時,使用新插入資料覆蓋老資料。

  • INSERT ON DUPLICATE KEY UPDATE

  • INSERT SELECT FROM

  • INSERT OVERWRITE SELECT

  • UPDATE

  • DELETE

其他DDL操作樣本

  • 加減列

    --加列--
    ALTER TABLE test_db.row_store_table
      ADD COLUMN bool boolean,
      ADD COLUMN STR varchar;
    --減列--
    ALTER TABLE test_db.row_store_table
      DROP COLUMN bool;
  • 加減索引

    --加索引--
    ALTER TABLE test_db.row_store_table
      ADD INDEX c_idx(c);
    --減索引--
    ALTER TABLE test_db.row_store_table
      DROP INDEX c_idx;
  • TRUNCATE TABLE

    TRUNCATE TABLE test_db.row_store_table;
  • DROP TABLE

    DROP TABLE test_db.row_store_table;

效能測試

在TPCH 10GB的測試資料集下,AnalyticDB for MySQL行存引擎整體點查效能提升10倍+,RT降低80%+,效能詳細結果如下。

測試情境

並發數

QPS

RT

PK點查

50

5259.0/s

9ms

100

10481.1/s

9ms

300

31347.0/s

9ms

500

42257.3/s

11ms

1000

82103.0/s

12ms

多PK點查(IN (xx,xx,xx)

100

2611/s

38ms

300

4422.3/s

67ms

500

6829.7/s

72ms

1000

6075.8/s

163ms