gpt4 book ai didi

php - 自动完成城市列表查询需要太多时间来加载巨大的城市表

转载 作者:行者123 更新时间:2023-11-29 00:58:43 25 4
gpt4 key购买 nike

我有一张包含近 1,600,000 条记录的城市表。我有一个自动完成文本框,我有查询来获取城市数据、国家/地区数据,如下所示:

SELECT m.idmetrocenter, m.idcountry, m.metrocentername, 
c.idcountry, c.countryname FROM metrocenter m
INNER JOIN country c ON m.idcountry = c.idcountry
WHERE (m.metrocentername like "ap%" OR c.countryname like "ap%")
ORDER BY m.metrocentername, c.countryname
LIMIT 10

此查询需要更多时间来响应,其响应时间几乎为 110 秒。我在 idmetrocenter、idcountry、metrocentername、countryname 上创建了索引。即使那样, react 也很差。

任何人都可以帮助我更快地实现此输出。我目前正在使用 Doctrine 。如果有人可以让我知道 Doctrine 上的解决方案会更好。

提前致谢

最佳答案

首先尝试解释您的查询,看看是否有效地使用了索引:

mysql> EXPLAIN SELECT m.idmetrocenter AS m__idmetrocenter,m.idcountry AS m__idcountry,m.metrocentername AS m__metrocentername,c.idcountry AS c__idcountry,c.countryname AS c__countryname FROM metrocenter m INNER JOIN country c ON m.idcountry = c.idcountry WHERE (m.metrocentername like "ap%"OR c.countryname like "ap%") 按 m.metrocentername, c.countryname LIMIT 10\G

第二个:尝试将 LIKE 语句更改为全文搜索 (MATCH/AGAINST ) http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

关于php - 自动完成城市列表查询需要太多时间来加载巨大的城市表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4781923/

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