带有 int 索引的 MySQL 简单查询很慢

标签 mysql performance indexing

这个简单的查询:

SELECT trip_id from stop_times WHERE stop_id = 345

大约需要 80 毫秒,考虑到我要遍历 ~10k 行,这个时间太多了。我的 stop_times 表有大约 350 万行,stop_id 上有一个索引。关于这里发生的事情以及可能加快速度的任何线索?

EXPLAIN [query] 输出:

id: 1   
select_type: SIMPLE
possible_keys: index_stop_times_on_stop_id
key: index_stop_times_on_stop_id
key_len: 5
ref: const
rows: 474
Extra: Using where

最佳答案

尝试将 trip_id 添加到 stop_id 的索引中。这样您的查询将具有覆盖索引并且不进行查找。此外,检查执行计划(EXPLAIN [your query])。如果索引不够选择性,则不会使用。

关于带有 int 索引的 MySQL 简单查询很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8546946/

相关文章:

objective-c - 哪种类型的数组用于大量数字?

c# - 获取ListView中选中的Item的索引

Python:根据另一列中的值提取单元格值

mysql - 如何在单个查询中使用 IF() 语句获取单独的字段数据

mysql - 处理(不)现有数据

mysql - SQL 查询计数(x)并按 y 分组

mysql - 学校数据库标准化会带来更好的性能吗

c# - 如何通过 SqlCeCommand 对象禁用 sql server 精简版中的所有表索引?

PHP & MySQL : using bcrypt hash and verifying password with database

mysql - 在尝试删除 MySQL 中的任何这些记录之前,如何检查记录列表的外键引用?