首页 » Web前端 » phpmysql高效分页技巧_mysql实验若何进行分页设计可以让sql更高效

phpmysql高效分页技巧_mysql实验若何进行分页设计可以让sql更高效

访客 2024-11-11 0

扫一扫用手机浏览

文章目录 [+]

create table t1(c1 int(11) default NULL, c2 varchar(30) default NULL, c3 date default NULL ) engine=innodb;

2、插入数据

--停滞binlog日志写入set sql_log_bin=off;或者SET @@SESSION.sql_log_bin = 0--创建存储过程delimiter //CREATE PROCEDURE load_hwb()begindeclare v int default 0; while v < 1000000 do insert into t1 values (v,'testing fenye',adddate('2019-01-01',(rand(v)36520) mod 3652)); set v = v + 1; end while; end //--插入100万数据mysql> delimiter ;mysql> call load_hwb(); --开启binlog日志写入set sql_log_bin=on;或者SET @@SESSION.sql_log_bin=1

解释:利用sql_log_bin这个参数是须要把稳几点:

phpmysql高效分页技巧_mysql实验若何进行分页设计可以让sql更高效

1)、千万不要不假思虑的加上 global 润色符(set global sql_log_bin=0),这样会导致所有在Master数据库上实行的语句都不记录binlog

phpmysql高效分页技巧_mysql实验若何进行分页设计可以让sql更高效
(图片来自网络侵删)

2)、INSERT、UPDATE、DELETE的SQL语句会导致Master和Slave数据库数据不一致,要谨慎操作。

3、建立索引

create index idx_id on t1(c1);

4、传统分页

mysql> select from t1 order by c1 desc limit 0, 10--在中小数据量的情形下,这样的SQL足够用了,唯一须要把稳的问题便是确保利用了索引。
随着数据量增加页数会越来越多,查看后几页SQL就可能类似:mysql> select from t1 order by c1 desc limit 999990,10;--总之便是越今后分页,LIMIT语句的偏移量就会越大,速率也会明显变慢。

一开始是0.01s

到这里就要3.12s了。

5、limit的高效分页(直接走索引)

mysql> select from t1 WHERE c1>=0 order by c1 limit 10;

可以看到输出结果同等,但基本秒出结果。

看实行操持已经走了索引。

6、limit的高效分页(id>=或<=)

子查询是在索引上完成的,而普通的查询时在数据文件上完成的,常日来说,索引文件要比数据文件小得多,以是操作起来也会更有效率。

mysql> select from t1 where c1 <= ( select c1 from t1 order by c1 desc limit 999990,1 ) limit 10;

把稳不雅观察耗时和实行操持。

7、limit的高效分页(join)

mysql> select from t1 inner join (select c1 from t1 order by c1 desc limit 999990,10) as t using(c1);

8、limit的高效分页(程序实现)

由于是程序实现,这里就只供应想法了...

--程序先取c1 select c1 from t1 order by c1 desc limit 999990,10;select from c1 where c1 in (0,1,2,3,4...);9、limit分页与缓存结合

场景:在分页的时候,缓存5页记录,默认每页20条,缓存大小100

基本思路是:第一次查的时候,先判断缓存中存不存在当前页的数据,如果存在,查找缓存中的数据,如果不存在,则去数据库中查询5页数据放入缓存中,然后再缓存中读取数据。
如果是当前页是前3页,那么读取1-5页的数据,如果当前页是后3页,读取后5页的数据,如果是中间页,读取当前页前两页+当前页+当前页后两页的数据;

类似百度的搜索界面,统共保留最新的10条记录,分10页。

分页样式类似如下:

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

如果你以为这篇文章对你有帮助, 请小小打赏下~

标签:

相关文章

今日头条算法如何实现个化推荐与精准传播

信息传播方式发生了翻天覆地的变化。今日头条作为国内领先的信息分发平台,凭借其强大的算法推荐系统,吸引了海量用户。今日头条的算法究竟...

Web前端 2025-01-31 阅读1 评论0

今日头条算法关闭之谜内容分发新格局

今日头条作为一款备受瞩目的新闻资讯平台,凭借其独特的算法推荐机制,吸引了大量用户。近期有关今日头条算法关闭的消息引发了广泛关注。本...

Web前端 2025-01-31 阅读1 评论0

今日头条算法智能推荐背后的科技魅力

信息爆炸的时代已经到来。人们每天在互联网上接触到海量的信息,如何从中筛选出有价值的内容,成为了人们关注的焦点。今日头条作为一款智能...

Web前端 2025-01-31 阅读1 评论0

今日头条算法专利申请个化推荐的秘密武器

信息爆炸的时代已经来临。在众多信息中,如何快速找到自己感兴趣的内容成为了一个难题。今日头条作为中国领先的资讯平台,凭借其独特的算法...

Web前端 2025-01-31 阅读1 评论0

今日头条算法机器推荐模式的秘密与挑战

大数据、人工智能等新兴技术的应用已经渗透到我们生活的方方面面。在信息爆炸的时代,人们获取信息的渠道越来越丰富,如何在海量信息中找到...

Web前端 2025-01-31 阅读1 评论0