当您在 gmail 中搜索单词 gmail 时,请输入:\n1\xe2\x80\x9320 约 98
\n\n98 是估计值 我怎样才能在我们的搜索中使用 mysql 来做到这一点?
\n\n我不想使用COUNT函数,或者SQL_CALC_FOUND_ROWS因为我有 1M 行并使用搜索fulltext。\n我想估计不算!
如果count或SQL_CALC_FOUND_ROWS没有帮助你有一些选择:
select table_rows
from information_schema.tables
where table_schema = 'database_name'
and table_name = 'table_name' ;
Run Code Online (Sandbox Code Playgroud)
估计但性能非常好。
counter将其他表中的值外部化并在插入/删除语句期间更新它(性能更高、更准确,但会增加写入语句的开销)
应用程序中的缓存计数器(我们可以想象有一种后台工作程序,每 30 分钟获取“更新”值并更新缓存中的值)该服务将始终使用缓存值
解决方案 1 和 3 是关于estimates但不要忘记棘手的部分(使用过滤列进行计数..所以使用where子句)...解决方案 1 不再有帮助,解决方案 2 和 3 将需要counter基于某些“静态”来维护多个过滤”就像count() where sexe='M'...
最后使用随机过滤器值..你被卡住了..并且你需要使用count具有最佳索引的目标表上的选项(或者可能尝试在全文搜索(如弹性搜索)中索引数据)
| 归档时间: |
|
| 查看次数: |
4985 次 |
| 最近记录: |