优先选index key_len小的索引进行count(*),尽量不使用聚簇索引
在没有where条件的情况下 , count(*)和count(常量),如果有非聚簇索引,mysql会自动选择非聚簇索引 , 因为非聚簇索引所占的空间?。绻挥蟹蔷鄞厮饕崾褂镁奂饕?。count(primary key)主键id为聚集索引,使用聚集索引 。有where条件的情况下,是否使用索引会根据where条件判断 。
mysql 数据量大的表如何做分页查询直接用limit start, count分页语句, 也是我程序中用的方法:
select * from product limit start, count
当起始页较小时,查询没有性能问题 , 我们分别看下从10, 100, 1000,10000开始分页的执行时间(每页取20条), 如下:
select * from product limit 10, 200.016秒
select * from product limit 100, 200.016秒
select * from product limit 1000, 200.047秒
select * from product limit 10000, 200.094秒
我们已经看出随着起始记录的增加,时间也随着增大,这说明分页语句limit跟起始页码是有很大关系的 , 那么我们把起始记录改为40w看下(也就是记录的一般左右)select * from product limit 400000, 203.229秒
再看我们取最后一页记录的时间
select * from product limit 866613, 2037.44秒
难怪搜索引擎抓取我们页面的时候经常会报超时,像这种分页最大的页码页显然这种时
间是无法忍受的 。
从中我们也能总结出两件事情:
1)limit语句的查询时间与起始记录的位置成正比
2)mysql的limit语句是很方便,但是对记录很多的表并不适合直接使用 。
关于mysql怎么加分页查询和mysql分页怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 腾讯云海外服务器免费领取,腾讯云海外购
- ip11怎么关小程序,苹果11怎么把开的小程序关闭
- 公众号文章可以出版吗,微信公众号可以出版电子书吗
- html5做vr,HTml5是什么
- s函数复杂的C语言 复杂的c语言代码
- oracle查询表条数及库存,oracle查询表的数据条数
- u盘系统什么软件,u盘用哪个文件系统好
- 如何做好酱香白酒推广营销,如何做好酱香白酒推广营销工作
- linux命令行分页显示 linux怎么分页显示文件内容