我正在为我们公司的 Intranet 构建一个相当大的“搜索”引擎,它有 1miljon 以及它在相当快的服务器上运行的条目,但某些搜索查询最多需要 1 分钟。
这就是桌子的样子
我尝试为它创建一个索引,但似乎我遗漏了什么,这就是显示索引的显示方式
这就是查询本身,主要是降低查询速度的排序,但即使是没有排序的查询也有点慢。
SELECT SQL_CALC_FOUND_ROWS *
FROM `businessunit`
INNER JOIN `businessunit-postaddress` ON `businessunit`.`Id` = `businessunit-postaddress`.`BusinessUnit`
WHERE `businessunit`.`Name` LIKE 'tanto%'
ORDER BY `businessunit`.`Premium` DESC ,
CASE WHEN `businessunit`.`Name` = 'tanto'
THEN 0
WHEN `businessunit`.`Name` LIKE 'tanto %'
THEN 1
WHEN `businessunit`.`Name` LIKE 'tanto%'
THEN 2
ELSE 3
END , `businessunit`.`Name`
LIMIT 0 , 30
很感谢任何形式的帮助
编辑:
阻塞这个查询 99% 是按与通配符的相关性排序。%
当我做解释时,它说使用 where;使用 fsort