gpt4 book ai didi

mysql - 改进 MySQL 查询

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

如果我仍然使用 MySQL 而不是 MySQLI,我深表歉意。很快就会升级,但目前我需要找到一种方法来解决这个问题。

我有一个查询,我认为它已经优化,但显然没有。

水果表中的行数不到 200,但查询需要大约 15 秒才能完成

这是查询:

SELECT `o`.`fruits_id` FROM `fruits` as `o` 
JOIN `fruits_categories` as `oc` ON `o`.`fruits_id` = `oc`.`fruits_id`
JOIN `categories` as `c` ON `c`.`fru_id` = `oc`.`fru_id`
WHERE ( (o.fruits_name LIKE '%apple orange%' OR o.fruits_description LIKE '%apple orange%' OR o.instagram_tag LIKE '%apple orange%' OR c.cat_name LIKE '%apple orange%' OR p.price_name LIKE '%apple orange%')
OR ((o.fruits_name LIKE '%apple%' OR o.fruits_description LIKE '%apple%' OR o.instagram_tag LIKE '%apple%' OR c.cat_name LIKE '%apple%' OR p.price_name LIKE '%apple%')
AND (o.fruits_name LIKE '%orange%' OR o.fruits_description LIKE '%orange%' OR o.instagram_tag LIKE '%orange%' OR c.cat_name LIKE '%orange%' OR p.price_name LIKE '%orange%')) )
GROUP BY `o`.`fruits_id`

我担心当数据库增长时,搜索将无法使用,因为它可能需要永远。

感谢所有帮助。

B

最佳答案

  1. 所有 LIKE '%apple Orange%' 条件都是不必要的,它们被单个单词的条件覆盖。
  2. like '%whatever%' 条件不能使用索引。考虑创建一个 fulltext index在受影响的列上并使用 match(...) against(...)全文搜索而不是具有模式匹配的 like 运算符。

关于mysql - 改进 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35217713/

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