使用H2 1.3.176.
1)表定义:
CREATE TABLE TEST(ID BIGINT PRIMARY KEY, ACCOUNT BIGINT, TXID BIGINT);
Run Code Online (Sandbox Code Playgroud)
2)将值插入表中:
INSERT INTO TEST SELECT X, RAND()*100, X FROM SYSTEM_RANGE(1, 1000000)
Run Code Online (Sandbox Code Playgroud)
3)创建用于我的查询的索引:
CREATE Unique INDEX IDX_TEST_ACCOUNT_TXID ON `test` (account, txId DESC);
Run Code Online (Sandbox Code Playgroud)
4)执行以下查询:
explain analyze
select txid from test where account=22 AND txid<9999999 order by txid desc limit 25
Run Code Online (Sandbox Code Playgroud)
我得到以下执行计划:
SELECT
TXID
FROM PUBLIC.TEST
/* PUBLIC.IDX_TEST_ACCOUNT_TXID: ACCOUNT = 22
AND TXID < 9999999
*/
/* scanCount: 9867 */
WHERE (ACCOUNT = 22)
AND (TXID < 9999999)
ORDER BY …Run Code Online (Sandbox Code Playgroud)