优化像查询mysql

时间:2014-02-27 08:03:06

标签: php mysql sql

我在mysql表中的中文文本列上做了很多类似的查询。我有以下架构:

table events
* response MEDIUMTEXT
* request MEDIUMTEXT
* user_id

查询:

SELECT * FROM events wHERe user_id = X and response LIKE ... 

我可以在user_id列上放置一个索引,以使查询运行得更快(但仍然会处理数百万行),但显然不在响应列上。

我可以采用哪种解决方案来优化mysql中的查询?

我应该考虑其他数据库解决方案,例如弹性搜索吗?

2 个答案:

答案 0 :(得分:0)

如果您可以在user_id列上添加索引,那么您的查询将运行得更快,并会对这些标识符执行优化搜索。

要解决LIKE的性能问题,如果您的查询始终涉及文本搜索,并且此查询不仅仅是一次尝试,您可以使用FULL-TEXT搜索功能。有关MySQL here中FULL-TEXT搜索的更多信息。有一个在SO的this question中使用FULL-TEXT的例子。

答案 1 :(得分:0)

如果搜索查询类似,您也可以像stackoverflow一样使用标记。