百万级数据的分页显示

最近在优化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

你可能感兴趣的:(百万级数据的分页显示)