百万级数据的分页显示

最近在优化mysql在一个20w的表和一个200w的表的连表查询。

  1. 统计的时候发现超级慢,把表的引擎改成了MyISAM。改完之后在求count的sql上面的查询速度超级快。

  2. 使用left join写的查询,这个写法极度的慢,n*m的查询量。所以改成了两个表各自查询,这样就变成了类似n+20(每页20条数据)m2(2个查询语句)的查询量了。

  3. 同时把200w表里面需要统计的数据量抽出来。直接放倒20w表里面,实时统计。

  4. 然后油发现了1+n的做法还是不够快。因为我们每个n那里有两个sql语句要查询。要知道,第二表的数据量是200w。所以还是慢。所以最后我们把20个需要查询的id用in来包含,然后再用group by来区分。成功的吧202n的问题改成了n+2m

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.数据控制语句(DML)部分 1.INSERT(往数据表里插入记录的语句) INSERTINTO表名(字段名1,...
    浮浮尘尘阅读 8,930评论 0 19
  • SQL语言基础 本章,我们将会重点探讨SQL语言基础,学习用SQL进行数据库的基本数据查询操作。另外请注意本章的S...
    厲铆兄阅读 10,701评论 2 46
  • 看了这么多季,才发现夏洛克有些澄澈的蓝眼睛,神秘,美好,而且令人沉醉和蓝。 一如曾经看过的《赎罪》的男主罗比(附图片)
    微尘迷离阅读 1,261评论 0 0
  • 我躺着 在很远的地方 成千上万的声音从四方践踏着我 我想大喊却发不出声音 我满以为我做梦的身体上会长满鲜花 可是竟...
    文森林木阅读 1,553评论 1 7
  • 千杀百战生难觅,乌纱绿袍难见戾。哀哀怨怨惊泣泣,喋喋念念恐难进。将行兵令挂帅旗,君颁德诏承相印。满是条条血印子,请...
    醉梦梦青阅读 1,631评论 0 0