我刚刚制作了第一个 mysql 数据库和表,但对一个简单的 select 语句的缓慢性能感到惊讶。我的表有 4 亿行,我的 select 语句返回大约 10 万行,但花了 14 分钟!不确定是我的设置有误,还是我对mysql的期望太高了。对于一个设计良好的表来说,从 4 亿行表中返回 100,000 行的预期时间是多少?这是我的设置:
CREATE TABLE CALLS (
quote_date DATE,
quote_time TIME,
expiration DATE,
delta decimal(4,3),
mid decimal(8,4)
);
CREATE INDEX idx_quote_date ON CALLS (quote_date);
CREATE INDEX idx_quote_time ON CALLS (quote_time);
CREATE INDEX idx_expiration ON CALLS (expiration);
CREATE INDEX idx_delta on CALLS (delta);
CREATE INDEX covering_index ON CALLS (quote_date, quote_time, expiration, delta);
我的表实际上只是用于使用 select 语句读取数据,因此我在加载所有数据后执行索引。
我的选择是:
select * from CALLS where DELTA BETWEEN 0.4 and 0.6;