在哪里慢

cnwbcb6i  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(245)

我有一个大表,其中有两列:
事件日期
国家
这个查询非常快:

select distinct event-date from my_table

这个查询也非常快速:

select * from my_table where country = 'US'

但是,此查询非常慢:

select distinct event_date from my_table where country = 'US'

我尝试添加所有索引组合,包括两列上的一个。没有什么能让第三个查询更快。
有什么见解吗?

uyto3xhc

uyto3xhc1#

您是否尝试过将结果暂存到临时表中,添加索引,然后从那里完成查询?不确定这在mysql中是否有效,但这是我在mssql中经常成功使用的技巧。

CREATE TEMPORARY TABLE IF NOT EXISTS staging AS (
    SELECT event_date FROM my_table WHERE country = 'US'
);
CREATE INDEX ix_date ON staging(event_date);
SELECT DISTINCT event_date FROM staging;
ttisahbt

ttisahbt2#

ALTER TABLE my_table ADD INDEX my_idx (event_date, country);

相关问题