这几天来,这一直是我头疼的事情。我之前创建数据库时对性能一无所知LIKE
。我使用的查询是这样的,
SELECT ....
FROM .... JOINS ....
WHERE tableA.col1 LIKE '%keyword%' OR
tableB.col2 LIKE '%keyword%' OR
tableC.col2 LIKE '%keyword%' OR
.....
当我测试查询时,它非常快,因为它只有大约 100-150 条记录。我想搜索包含该关键字的任何字符串。几个月过去了,数据库变得越来越庞大,包含 50,000 条记录。而这一次,我已经体验到了查询性能的低下。这是非常低的。
有什么建议我可以如何改进吗?我无法更改数据库,因为它已经被公司使用。
顺便说一下,我的桌子都是INNODB
.
这种类型的搜索称为全文搜索,并且您确实需要使用专门的系统来代替它,而不是强制数据库不断地进行表扫描。您实质上将所有想要搜索的文本交给搜索引擎,然后搜索引擎将其编入索引以进行快速搜索。
一种选择是阿帕奇卢塞恩.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)