百万数据下mysql条件查询及分页查询的注意事项


本文摘自PHP中文网,作者藏色散人,侵删。

接上一节《百万数据mysql分页问题》,我们加上查询条件:

1

2

3

4

5

select id from news

where cate = 1

order by id desc

limit 500000 ,10

查询时间 20 秒

好恐怖的速度!!利用第一节《百万数据mysql数据测试环境介绍》知识进行优化:

1

2

3

4

5

select * from news

where cate = 1 and id > (select id from news where cate = 1 order by id desc limit 500000,1 )

order by id desc

limit 0,10

查询时间 15 秒

优化效果不明显,条件带来的影响还是很大!在这样的情况下无论我们怎么去优化sql语句就无法解决运行效率问题。那么换个思路:建立一个索引表,只记录文章的id、分类信息,我们将文章内容这个大字段分割出去。

1

2

3

4

表 news2 [ 文章表 引擎 myisam 字符集 utf-8 ]

-------------------------------------------------

idint11主键自动增加

cateint11索引

在写入数据时将2张表同步,查询是则可以使用news2 来进行条件查询:

阅读剩余部分

相关阅读 >>

mysql加密函数有哪些?

mysql怎么设置表名?

gorm操作mysql的实现

mysql 如何利用分片来解决 500 亿数据的存储问题

详细讲解mysql全局变量与局部变量

如何搭建 mysql 高可用高性能集群

mysql数据库服务器端核心参数详解和推荐配置

mysql8.0.23 msi安装超详细教程

图文详解mysql中如何查看sql语句的执行时间

mysql多表联合查询操作实例分析

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...