gpt4 book ai didi

mysql - 需要有关加快 MySQL 查询速度的建议

转载 作者:行者123 更新时间:2023-11-29 14:48:27 25 4
gpt4 key购买 nike

这是我当前正在执行的查询:

SELECT * FROM `datalog`
WHERE world_id IN (2)
AND action IN (0,1,2,8,9,10,11,13,14,15)
AND x = -184.0 AND y = 98.0 AND z = 141.0
ORDER BY data_id DESC;

不幸的是,它花费了很长时间并且不知道为什么(数据库中有 1400 万个条目需要 5 秒或更长时间)。我有一个关于 world_id 和 Action 的索引(因为最多只有 7 个世界和 20 个 Action )。我还能如何加快搜索速度?

编辑 - 解释值:SIMPLE datalog ALL NULL NULL NULL NULL 13510263 使用 where;使用文件排序

最佳答案

尝试向 x、y 和 z 添加索引。

您说您认为这行不通,因为它们可以包含很大范围的值。

只要您使用的表类型支持BTREE索引(这是 MyISAM 和 INNODB 支持的唯一索引类型),这不应该是真的。如果您使用的是HASH索引,可能就是这种情况,因为它需要为每个值建立索引。但有BTREE索引,MySQL 能够快速对索引中的特定值进行排序。这就是为什么它能够使用 BTREE还使用比较运算符对查询建立索引( <> 等)

您可以在此处查看更多信息:http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html

关于mysql - 需要有关加快 MySQL 查询速度的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6333342/

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