0

0

mysql分页优化

php中文网

php中文网

发布时间:2016-06-07 15:34:16

|

1415人浏览过

|

来源于php中文网

原创

参考:mysql分页优化 大家都知道分页肯定会用到这两种类型的sql: (1) select count(*) from table where 条件 (2) select * from table where 条件 (页码数-1)*每页数 当数据量一大(几百w),不管你是用什么存储引擎,这两种sql都会很恶心了。 对于

参考:mysql分页优化

大家都知道分页肯定会用到这两种类型的sql:

(1) select count(*) from table where 条件
(2) select * from table where 条件 (页码数-1)*每页数
当数据量一大(几百w),不管你是用什么存储引擎,这两种sql都会很恶心了。

对于第一种:
我表示无解,如果你单表几百万、几千万,即使走覆盖索引也要很长时间,带了where条件,无论是MYISAM还是INNODB都会全表扫描,如果你对结果并不是非要精确,走cache吧,因为被坑了很多次,所以我坚持分表处理,尽量保持单表不过百万。

对于第二种:
(1)首先当然是建立索引了,让查询结果在索引中进行;
(2)只返回需要的自动
(3)先获取到offset的id后,再直接使用limit size来获取数据。
随便创建了一张表,插了一百万的数据

[sql] view plaincopy

  1. CREATE TABLE IF NOT EXISTS `article` (  
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  3.   `category_id` int(11) NOT NULL,  
  4.   `namechar(16) NOT NULL,  
  5.   `content` text NOT NULL,  
  6.   PRIMARY KEY (`id`),  
  7. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8  


看看优化效果:

[sql] view plaincopy

  1. #查询花费 38.6875 秒  
  2. SELECT SQL_NO_CACHE *   
  3. FROM  `article`   
  4. LIMIT 800000 , 20  
  5.   
  6. #查询花费 0.9375 秒  
  7. SELECT SQL_NO_CACHE id, category_id  
  8. FROM  `article`   
  9. LIMIT 800000 , 20  
  10.   
  11. #查询花费 0.3594 秒  
  12. SELECT SQL_NO_CACHE id, category_id  
  13. FROM  `article`   
  14. WHERE id >= (SELECT id FROM  `article` LIMIT 800000 , 1)   
  15. LIMIT 20  
  16.   
  17. #查询花费 0.0000 秒  
  18. SELECT SQL_NO_CACHE id, category_id  
  19. FROM  `article`   
  20. WHERE id  
  21. BETWEEN 800000   
  22. AND 800020   


windows下测试可能存在一定误差,当然还有很多其他的方法如建立索引表等待。

最后:对于大型平台或系统,用框架啊、什么ORM就行不通了,会让你尴尬的!


墨刀AIPPT
墨刀AIPPT

排版/配图/美化一键优化,3分钟产出专业级PPT

下载

来源: http://www.lai18.com/content/312862.html

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

26

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

24

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

72

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

10

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

52

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

183

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

12

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

8

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.7万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 785人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号