全部產品
Search
文件中心

Lindorm:通過HINT查詢熱資料

更新時間:Apr 09, 2025

本文介紹如何在Lindorm寬表SQL中通過HINT查詢熱資料。

引擎與版本

HINT文法僅適用於寬表引擎,且引擎版本需為2.3.1及以上版本。

說明

如何查看或升級目前的版本,請參見寬表引擎版本說明升級小版本

前提條件

Lindorm執行個體已開通冷儲存功能,具體操作請參見開通容量型雲端儲存

使用方法

重要

使用HINT不支援單獨查詢冷資料。

假設表結構及表中資料如下:

-- 建立測試表,指定保留的版本數為5
CREATE TABLE t_test_versions_2 (c1 INT , c2 INT, c3 VARCHAR(50), PRIMARY KEY(c1)) WITH(VERSIONS='5');

-- 插入資料
UPSERT /*+ _l_ts_(1000)  */ INTO t_test_versions_2(c1, c3) VALUES (1, '11');
UPSERT /*+ _l_ts_(2001)  */ INTO t_test_versions_2(c1, c3) VALUES (1, '22');
UPSERT /*+ _l_ts_(1000)  */ INTO t_test_versions_2(c1, c2) VALUES (1, 1);
UPSERT /*+ _l_ts_(2001)  */ INTO t_test_versions_2(c1, c2) VALUES (2, 1);
UPSERT /*+ _l_ts_(2002)  */ INTO t_test_versions_2(c1, c2) VALUES (2, 2);
UPSERT /*+ _l_ts_(2003)  */ INTO t_test_versions_2(c1, c2) VALUES (2, 3);
UPSERT /*+ _l_ts_(2004)  */ INTO t_test_versions_2(c1, c2) VALUES (2, 4);
UPSERT /*+ _l_ts_(2005)  */ INTO t_test_versions_2(c1, c2) VALUES (2, 5);
UPSERT /*+ _l_ts_(2006)  */ INTO t_test_versions_2(c1, c2) VALUES (2, 6);

使用HINT僅查詢熱儲存中的資料

您可以在查詢語句中使用HINT,即添加_l_hot_only_(true)參數。以下兩種語句均可查詢熱儲存中的資料。

SELECT /*+ _l_hot_only_ */ * FROM t_test_versions_2 WHERE c1 IN (1, 2, 3);
SELECT /*+ _l_hot_only_(true) */ * FROM t_test_versions_2 WHERE c1 IN (1, 2, 3);

返回結果:

+----+----+------+
| c1 | c2 | c3   |
+----+----+------+
| 1  | 1  | 22   |
| 2  | 6  | null |
+----+----+------+

使用HINT查詢所有資料

您可以在查詢語句中設定_l_hot_only_(false)來查詢表的所有資料,包括冷資料和熱資料。

重要

在查詢語句中設定_l_hot_only_(false)與不使用HINT進行查詢,返回結果是相同的。

-- 查詢所有資料,包括冷資料和熱資料
SELECT /*+ _l_hot_only_(false) */ * FROM t_test_versions_2 WHERE c1 IN (1, 2, 3);

-- 上述語句查詢結果與不添加HINT參數的查詢結果相同
SELECT * FROM t_test_versions_2 WHERE c1 IN (1, 2, 3);

返回結果:

+----+----+------+
| c1 | c2 | c3   |
+----+----+------+
| 1  | 1  | 22   |
| 2  | 6  | null |
+----+----+------+