在mysql中存储搜索查询

时间:2014-01-03 16:30:30

标签: php mysql database search

我有一个相当大的网站,每天大约有10万次搜索。

我的mysql目前在服务器上造成非常高的负载,我怀疑我的表存储了搜索查询的原因。

现在mysql表只有2列:日期和查询。我每次有人搜索某些内容时都会添加新查询,然后另一个脚本会删除超过24小时的查询。网站上显示最近30个查询,按日期排序。

这可能是高负荷的原因吗?添加带有ID的列或使用任何其他方法存储搜索会产生很大的不同? THX

1 个答案:

答案 0 :(得分:1)

我建议您查看索引,并可能添加一些专门的搜索工具,例如Sphinx。

我建议您首先在搜索查询上运行EXPLAIN查询。

如果您的表有大量写入,则不应使用MyISAM引擎,因为它会锁定所有表,而不仅仅是行。你应该使用InnoDB引擎。