gpt4 book ai didi

mysql - SQL 新手 - 使用索引加快速度

转载 作者:行者123 更新时间:2023-11-29 05:51:09 25 4
gpt4 key购买 nike

我是 SQL 数据库的新手,创建了一个包含以下列的 mySQL 表:

MJD (FLOAT) - may be duplicate 
WAVELNTH (LONG) - one of ~10 values
EXPTIME (FLOAT)
DATAMEAN (FLOAT)
FLUX (FLOAT)

一个典型的条目是这样的:

数据库中的典型条目如下所示:

MJD 55329.017334, 
WAVELNTH 131
EXPTIME 2.9
DATAMEAN 8.06
FLUX 2.78

数据库总共有 157,502,333 个条目。

我的查询几乎是排他性的

SELECT (MJD, FLUX) FROM t 
WHERE (MJD > value1 and MJD < value2 and WAVELNTH=value3)

现在执行单个查询大约需要一分钟。我对索引很陌生,所以希望在 a) 如何最好地添加索引和 b) 如何在我的查询中使用该索引方面得到一些帮助。

最佳答案

我建议使用以下索引:

CREATE INDEX idx ON yourTable (WAVELNTH, MJD, FLUX);

前两列 WAVELNTHMJD,出现在 WHERE 子句中,用于潜在地限制需要记录的数量在查询中考虑。没有更多信息,不清楚顺序应该是什么。因此,以下索引可能更好:

CREATE INDEX idx ON yourTable (MJD, WAVELNTH, FLUX);

我们在索引末尾包含 FLUX 的原因是覆盖该列中的值。由于您的选择请求 MJDFLUX 很可能任何索引都需要同时具有这两个列,以便 MySQL 使用索引。

关于mysql - SQL 新手 - 使用索引加快速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54016279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com