gpt4 book ai didi

PHP、SQL - 复杂的查询需要 40 多秒

转载 作者:行者123 更新时间:2023-12-01 00:54:33 24 4
gpt4 key购买 nike

在我们的应用中,我们使用这 3 个表:

  1. 类别
  2. 城市(category_id)
  3. city_data(距离,city_id)
$q = "SELECT a.id as aid,a.distance as adistance, 
b.id as bid,b.distance as bdistance
FROM city_data as a
JOIN city_data as b on a.id != b.id
JOIN cities AS a_cities ON a.city_id = a_cities.id
JOIN cities AS b_cities ON b.city_id = b_cities.id
WHERE (a_cities.category_id='".$_GET["c"]."' AND b_cities.category_id='".$_GET["c"]."')
AND abs(a.distance - b.distance) < 100 ORDER BY RAND() LIMIT 1";

citiescity_data 具有相同的行数 - 将近 5.000。上面的查询大约需要 45 秒,这很糟糕。更糟糕的是,这些表应该有另外 5.000 行,总共有 10.000 行......

我想问你有什么办法,如何减少上面查询的执行时间......45s是 Not Acceptable ......

我有什么办法可以解决这个问题吗?

编辑: 感谢您的建议,我删除了 ORDER BY RAND() 部分,时间真的很短,大约 22 秒,但这仍然太高了平时使用

最佳答案

确保已在连接列(cities.city_id、city_data.id、cities.category_id)上创建索引

关于PHP、SQL - 复杂的查询需要 40 多秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12309717/

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