无法在 20 秒内从 100MB 表中从 apache ignite 的单个选择查询中提取 100k 行

问题描述 投票:0回答:1

我正在 azure 中的 kubernetes 集群上运行 apache ignite。我已加载 100MB 大小、400k 行的内存表。

集群为 Standard_B4ms,运行在 5 个节点和 5 个 ignite 副本上。

有什么方法可以将选择查询响应时间从 22 秒减少到 5 秒以下。

您能引导我到这里吗?

我尝试运行以下查询

DROP TABLE IF EXISTS txn_100mb_4colns;
CREATE TABLE txn_100mb_4colns (
    dept_id VARCHAR,
    store_id VARCHAR,
    week_id VARCHAR,
    sales DECIMAL(10, 2),
    PRIMARY KEY (dept_id,week_id,store_id)
) WITH "template=partitioned, backups=1, affinityKey=dept_id, CACHE_NAME=txn_100mb_4colns,KEY_TYPE=demo.model.txn_100mb_4colns_key, VALUE_TYPE=demo.model.txn_100mb_4colns";
create index txn_100mb_4colns_index1 on txn_100mb_4colns (week_id,dept_id,store_id) INLINE_SIZE 13;
COPY
FROM
'C:\Users\koushik\Downloads\txn_100mb_4colns.csv'
INTO
    txn_100mb_4colns (
    dept_id ,
    store_id ,
    week_id,
    sales
    ) FORMAT CSV
    

我正在执行的查询:

SELECT week_id, dept_id, store_id, sales
FROM txn_100mb_4colns
WHERE WEEK_ID = '202101'
ORDER BY sales DESC
LIMIT 100000
sql query-optimization ignite
1个回答
0
投票

尝试在覆盖索引中按此顺序对这些列建立索引。

(week_id, sales DESC, dept_id, store_id) 

这应该允许您的 DBMS 无需单独的排序步骤即可交付其结果集。

© www.soinside.com 2019 - 2024. All rights reserved.