新版博客SEO优化基本完成,新老博客内容正在整合中,保证每篇文章高质量。 SiteMap RSS Github
Mysql查询优化---分页
嘉美伯爵   2018年8月20日 08:37   数据库   MySQL   205  

使用基础查询语句

  • 场景:数据量较少得情况(元组百/千级)
  • 缺点:全表扫描,速度较慢且返回得结果集不稳定
  • 语法:select * from tablename limit start, offset;

利用索引

  • 场景:适用于数据量多的情况(元组数上万)
  • 缺点:数据查询出来并不是按照pk_id排序的,会出现漏掉数据的情况
  • 语法:SELECT * FROM tablename WHERE id_pk > (pageNum*10) LIMIT M

基于索引在排序

  • 场景:适用于数据量多的情况(元组数上万)
  • 语法:SELECT * FROM tablename WHERE id_pk > (pageNum*10) ORDER BY id_pk ASC LIMIT M

利用子查询

  • 语法:SELECT * FROM your_table WHERE id <= (SELECT id FROM your_table ORDER BY id desc LIMIT ($page-1)*$pagesize ORDER BY id desc LIMIT $pagesize;

利用连接查询

  • 语法:SELECT * FROM your_table AS t1 JOIN (SELECT id FROM your_table ORDER BY id desc LIMIT ($page-1)*$pagesize AS t2 WHERE t1.id <= t2.id ORDER BY t1.id desc LIMIT $pagesize;