gpt4 book ai didi

mysql - 使用 2 个范围的查询的索引设计

转载 作者:行者123 更新时间:2023-11-29 01:44:00 26 4
gpt4 key购买 nike

当我的查询使用 2 个字段的范围时,我试图了解如何为我的数据设计索引。

expenses_tbl:
idx date category amount
auto-inc INT TINYINT DECIMAL(7,2)
PK

列类别定义费用的类型。像,娱乐,服装,教育等。其他栏目很明显。

我对此表的查询之一是查找在给定日期范围内费用超过 50 美元的所有实例。这个查询看起来像:

SELECT date, category, amount 
FROM expenses_tbl
WHERE date > 120101 AND date < 120811
AND amount > 50.00;

我如何为这个特定的查询设计这个表的索引/二级索引。

假设:该表非常大(目前不是,但这给了我学习的空间)。

最佳答案

MySQL 通常不支持复合索引的多个部分的范围。它要么使用日期索引,要么使用数量索引,但不能同时使用两者。如果您有两个索引,每个索引一个,它可能会进行索引合并,但我不确定。

我会在添加这些索引之前和之后检查 EXPLAIN:

CREATE INDEX date_idx ON expenses_tbl (date);
CREATE INDEX amount_idx ON expenses_tbl (amount);

复合指数范围 - http://dev.mysql.com/doc/refman/5.5/en/range-access-multi-part.html

索引合并 - http://dev.mysql.com/doc/refman/5.0/en/index-merge-optimization.html

关于mysql - 使用 2 个范围的查询的索引设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917913/

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