首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的简单搜索查询太慢?

为什么我的简单搜索查询太慢?
EN

Server Fault用户
提问于 2022-04-15 20:05:17
回答 1查看 434关注 0票数 0

我不知道为什么在我的“城市”桌子上搜索这么慢。我的查询是寻找一个离城市约25公里的表格“城市”。我使用这个简单的查询,数据库大约需要20秒才能返回结果。

代码语言:javascript
复制
SELECT city_destination,distance FROM cities WHERE city_start='Wien' AND distance <= 25 ORDER BY distance ASC

表引擎是InnoDB。这张桌子大约有几分。7百万行:

代码语言:javascript
复制
+--------------------+-------------+------+-----+---------+----------------+
| Field              | Type        | Null | Key | Default | Extra          |
+--------------------+-------------+------+-----+---------+----------------+
| id                 | int(11)     | NO   | PRI | NULL    | auto_increment |
| id_of_start        | int(11)     | NO   |     | NULL    |                |
| id_of_destination  | int(11)     | NO   |     | NULL    |                |
| city_start         | text        | NO   |     | NULL    |                |
| city_destination   | text        | NO   |     | NULL    |                |
| distance           | double      | NO   |     | NULL    |                |
+--------------------+-------------+------+-----+---------+----------------+

有人能告诉我如何优化数据库或查询吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-04-15 20:52:25

对于这个查询,您应该使用一个city_start +距离索引

代码语言:javascript
复制
CREATE INDEX idx_citie_start_distance ON cities (city_start, distance);

您还可以创建两个索引: city_start和另一个表示距离。这也应该很好。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1098720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档