我正在 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
尝试在覆盖索引中按此顺序对这些列建立索引。
(week_id, sales DESC, dept_id, store_id)
这应该允许您的 DBMS 无需单独的排序步骤即可交付其结果集。