gpt4 book ai didi

sql - 有没有办法优化这个mysql查询?

转载 作者:可可西里 更新时间:2023-11-01 07:50:22 26 4
gpt4 key购买 nike

SELECT T1.name AS hotel, 
T2.name AS city
FROM (SELECT *
FROM hotel
WHERE name LIKE '$term1%') T1,
(SELECT *
FROM city
WHERE name LIKE '$term2%') T2
WHERE T1.city_id = T2.id

T1 有 150000,T2 有 15000。(静态表!)我在这个表的“名称”上有索引。

有没有办法优化这个mysql查询?我也想做 -> LIKE '%term1%' 但它非常非常慢。

最佳答案

第一步是使用 ANSI-92 重写查询 JOIN syntax :

SELECT h.name AS hotel,
c.name AS city
FROM HOTEL h
JOIN CITY c ON c.id = h.city_id
WHERE h.name LIKE '$term1%'
AND c.name LIKE '$term2%'

之后,看看索引:

  • 酒店名称
  • HOTEL.city_id
  • CITY.name
  • CITY.id

...各种组合。

关于sql - 有没有办法优化这个mysql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738985/

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