发新话题
打印

咨询下sax1.6,关于搜索功能实现的问题

咨询下sax1.6,关于搜索功能实现的问题

看了下搜索的代码,发现是通过两步来实现的
1.是提交搜索关键字到post.php文件,将查询结果写入searchindex数据库
2.是通过searchid,在index.php页面取得searchindex表中的ids,然后再select * from articles where articleid in(ids)

这样的话,就是两次从article表中取结果,第一次是写入searchindex,第二次是通过 where in(ids)
会不会影响速度?为什么不是直接显示数据呢

这样做,如果说能起到缓存的作用,也只是在用户在限定搜索时间内(如30秒)多次查询相同关键字,相同查询条件的时候,才会省略第一次写searchindex表的步骤,但,感觉,这样的情况(用户多次查询相同的条件),很少出现

TOP

我看了后台管理端,删除多个数据的时候(如删除用户,删除文章),都采用的where in()
但我感觉in效率不是很高,尤其是in()中元素较多的话,如十几个,面对几十万的文章的话,删除起来,怕会很吃力

TOP

把用户搜索结果索引到searchindex表,达到索引目的,然后再匹配结果,如果再进行番页操作或者在地址直接输入地址就不用再进行全表搜索匹配关键词,直接调用ids匹配.
专注sablog
qq:1738143

TOP

如果有翻页情况出现的话,说明ids很多啦,据说in是or的关系,那么in这么多ids,速度会不会太慢了呢

请教

TOP

怎么会慢呢?直接ids匹配一页数量
专注sablog
qq:1738143

TOP

发新话题