已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 讨论/求助

标题: 对于数十万的数据库,应该怎么优化查询?

作者: @Ta

时间: 2020-03-06发布,2020-03-13修改

点击: 5079
被下沉

#

[隐藏样式|查看源码]


『回复列表(10|隐藏机器人聊天)』

1. @老虎会游泳
(/@Ta/2020-03-06 10:09//)

2.

sphinx
友链一下:https://cway.top

(/@Ta/2020-03-06 10:20//)

3.

@拒绝柳岩99次,我也遇到过这种情况,网上找了半天都没有很好的解决,还是问一位大佬指点之下反复修改语句做到分页了秒开,简单模糊搜索基本秒开。
小菜狗我菜就菜怎么了? https://76wp.cn奇乐网

(/@Ta/2020-03-06 11:09//)

4.

php使用xunsearch或者elsaticsearch(不知道拼对没有)

不仅可以全文搜索,速度还很快!!!!

至于sphinx对中文不友好。

当然,xs和es都需要在linux安装,光会php,mysql确实没什么用
红米Note7 高配版(黑色)

(/@Ta/2020-03-06 12:16//)

6. 没有几千万谈优化,你怕不是搞笑的,放SQL出来才能找出问题,建索引不是唯一办法。
(/@Ta/2020-03-06 18:08//)

7.

@拒绝柳岩99次,在没有全文索引的情况下使用模糊匹配(LIKE),要解决分页慢问题,必须进行缓存。
必须进行缓存。我只能这样说。无论缓存在哪里都可以。如果你的数据库支持缓存,你就没必要自己做。但是如果你的数据库不支持,每次都全量匹配,那你就必须在第一次的时候把没分页的查询结果缓存到其他地方,以后每次都从缓存读取。
比如虎绿林的搜索就缓存了。所以第一页可能很慢,但是以后每页都很快。

如果你还想进一步优化,就只能考虑全文索引了。但是不要对它的性能有不切实际的幻想:在文字多到一定程度的时候,查询全文索引本身就很慢,所以缓存还是必要的。而且很多全文索引方式不支持中文。

(/@Ta/2020-03-07 19:03//)

8. @老虎会游泳,全文检索确实快很多,但是查询精度差距很大,用like得到的结果1w+,全文检索得到的结果只有400+。
(/@Ta/2020-03-07 21:56//)

9.

@拒绝柳岩99次,其实这就是全文检索对中文的支持不好,分词不准确,某些内容就搜不到。

(/@Ta/2020-03-07 22:11//)

10. 还是老虎说得好啊,什么每个分类文章数,近n天的文章数,阅读量超m的文章数,关于某关键词的文章。。大小网站都可以做到每天统计当天的这些数据再保存起来,也不一定非得是缓存。查询的时候加法这些结果就行了嘛。
(/@Ta/2020-03-08 00:45//)

11. @黄章@勤话Qh134,我第一天学编程,让您见笑了。
(/@Ta/2020-03-08 18:27//)

回复需要登录

7月5日 21:05 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1