MYSQL - 从部分表中选择以减少搜索时间

标签 mysql

我有一个包含数十万行的 mysql 数据库。我想在其中一个字段中搜索一个术语,但只在最后 10000 行中搜索。搜索整个表花费的时间太长,而且我要查找的结果不太可能早于最后 10000 行。有没有办法制作如下查询:

 SELECT body from <last 10000 rows of table> where body like '%searchTerm%'

最佳答案

是的,你可以在 mysql 中使用 LIMIT 子句,但为了告诉最后一列是什么,你还必须有一个 ORDER 子句。

喜欢下面的

SELECT `body` FROM (SELECT * FROM `table` ORDER BY `dateOfRelevance` DESC LIMIT 10000) a WHERE `body` LIKE '%searchTerm%'

虽然我不确定 mysql 是否能够在 body 上正确使用 INDEX

关于MYSQL - 从部分表中选择以减少搜索时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42557894/

相关文章:

javascript - Google Maps API : How to replace the source, 从 Google Spreadsheet API 到 MySQL/PHP?

mysql - 获取匹配所有搜索查询的结果

mysql - 如何获取 VIEW 中的单个字段以在 WHERE 中使用

javascript - 使用ajax将jquery变量插入到php中?

MySQL配置类型?

mysql - 在 SQL 中迭代和更新表

php - 有没有办法使用php获取mysql查询结果

PHP/或 mysql 搞乱了我的插入

mysql - 在 SQL 中将 auto_increment 添加到主键

php - 当查询返回0条记录时更改MySQL比较值