网站搜索别直接全表like,数据多了搜索一次5秒,加索引分页速度直接快几十倍

9年前 (2018-04-12)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

新手做网站,搜索功能直接用like '%关键词%',数据攒到几万条,搜索一次要几秒,数据库直接被拖满,其实中小站的搜索功能,不用上复杂的搜索引擎,几个简单优化就能快很多。第一,别用前后模糊的like '%关键词%',这种查询走不了索引,几万条数据全表扫描,先给标题字段加索引,查询的时候尽量用前缀匹配;第二,搜索结果分页,别一次返回所有匹配的文章,每页显示20条,不然一次查几千条数据,数据库直接卡死;第三,搜索的关键词长度做限制,别让用户传几百字的关键词,直接返回错误,不然长关键词的查询特别慢;第四,搜索结果按相关度排序,别按时间倒序,用户搜的内容,相关的排在前面,不然用户搜个关键词,出来的全是不相关的旧文章。

我之前的博客,搜索功能用全表like,一万条文章的时候,搜索一次要5秒,给标题加索引,分页之后,搜索速度直接降到几十毫秒。很多新手觉得搜索功能就是个简单查询,等数据多了,搜索慢的把数据库打满,用户根本用不了。真的,中小站的搜索不用上ES,把索引、分页做好,几万条数据也能搜的飞快。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/3298.html

0
回帖

网站搜索别直接全表like,数据多了搜索一次5秒,加索引分页速度直接快几十倍 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息