gpt4 book ai didi

php - 全文搜索非常慢

转载 作者:行者123 更新时间:2023-11-29 21:06:20 24 4
gpt4 key购买 nike

我有一个这样的数据库

DATABASE

warehouse_folders
folder_id
folder_box_id
folder_number
folder_title
folder_content
folder_notes

warehouse_folder_value
folder_value_id
folder_value_folder_id
folder_value_01
folder_value_02
folder_value_03
folder_value_04
folder_value_05
folder_value_06
folder_value_07
folder_value_08
folder_value_09
folder_value_00
folder_value_11
folder_value_12

warehouse_box
box_id
box_number
box_description

** 大约 40,000 行。所有字段都是 varchar,我已经为所有字段创建了索引。

我想执行全文搜索(PHP 和 MySQL_),但是当添加 JOINS 时数据库停止响应。

有什么办法可以解决吗?**

QUERY

SELECT
*

FROM
warehouse_folders

LEFT JOIN
warehouse_folder_value ON folder_value_id = folder_id

LEFT JOIN
warehouse_boxes ON box_id = folder_box_id



WHERE
(

(`box_number` LIKE '%".$search."%') OR
(`box_description` LIKE '%".$search."%') OR
(`folder_number` LIKE '%".$search."%') OR
(`folder_title` LIKE '%".$search."%') OR
(`folder_content` LIKE '%".$search."%') OR
(`folder_notes` LIKE '%".$search."%') OR
(`folder_value_01` LIKE '%".$search."%') OR
(`folder_value_02` LIKE '%".$search."%') OR
(`folder_value_03` LIKE '%".$search."%') OR
(`folder_value_04` LIKE '%".$search."%') OR
(`folder_value_05` LIKE '%".$search."%') OR
(`folder_value_06` LIKE '%".$search."%') OR
(`folder_value_07` LIKE '%".$search."%') OR
(`folder_value_08` LIKE '%".$search."%') OR
(`folder_value_09` LIKE '%".$search."%') OR
(`folder_value_10` LIKE '%".$search."%') OR
(`folder_value_11` LIKE '%".$search."%') OR
(`folder_value_12` LIKE '%".$search."%')

)

最佳答案

  1. like 运算符不执行全文搜索,它执行简单的模式匹配。这是match(...) against(...)进行全文搜索的运算符,但您应该创建全文索引来支持此类搜索。

  2. 像“%constant%”这样的搜索不能使用索引,因为该模式可以适合字段内文本的任何部分。

  3. Mysql 在查询中对表使用单个索引。对于 or 条件,它可能会使用操作中其中一个字段的索引,而不是所有字段。您可以重写 where 条件以使用 union 而不是 or - 但只要模式具有该前导通配符,就没有用。

以上组合会导致您的 sql 查询变慢。您可以使用解释来验证上述内容,这无疑会显示全表扫描。

根据您的具体需求,转换为全文索引和全文搜索,或者实现一些外部全文搜索解决方案可以提高您的性能。

关于php - 全文搜索非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36795996/

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