MySQL.分页 & 慢日志查询

limit分页

select * from table_name limit 0,5  或者  select * from table_name limit 5    #取前5条数据

select * from table_name limit 10,5                     #查询第11到15条数据

limit关键字用法

limit [offset,] rows          #offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0而不是1

select * from table_name where 条件limit 当前页码*页面容量-1,页面容量

6种MySQL分页总结:

1.直接使用数据库的SQL语句               select * from 表名称 limit M,N

2.建立主键或唯一索引,利用索引(假设没有10条)     select * from 表名称 where id_pk(pagenum * 10)limit M

3.基于索引再排序                  select * from 表名称 where id_pk>(pagenum * 10)order by id_pk asc limit M 

4.基于索引使用prepare

(第一个?表示pagenum,第二个?表示每页元组数)     prepare stmt_name from selcte * from 表名称 where id_pk>(?*?)order by id_pk asc limit M

5.利用MySQL支持order操作可以利用索引快速定位部

   分元组,避免全盘扫描               select * from your_table where pk>=1000 order by pk asc limit 0,20    #读第1000到1019行元组(pk是主键/唯一健)

6.利用“子查询/连接+索引”快速定位元组的位置,然后再读取元组

   利用子查询示例:

        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 ASt1 join (select id from your_table order by id desc limit ($page-1)* $pagesize ASt2 ) where t1.id <=t2.id order by t1.id desc limit $ pagesize;

 

 

慢日志查询:

1.slow_query_log=OFF        #是否开启慢日志记录

2.long_query_time=2         #时间限制,超过此时间,则记录

3.slow_query_log_file=usr/low/slow.log #日志文件

4.log_queseris_not_indexds=OFF   #为使用索引的搜索是否记录

   注:查看当前配置信息

          show variables like '%query%'

     修改当前配置

          get global 变量名=值

 

查看MySQL慢日志:

        mysql dump slow -s at -t   / usr / local /var/ mysql / Mac book-pro-3-slow.log

1.verbose   版本

2.debug   调试

3.help    帮助

4.  -v   版本

5.  -d     调试模式

6. -s order  排序方式

7. what to sort by (al ,at ,ar ,c , l, r, t),“at” is default   #al: average lock time  ar: average rows sent   at:average query time  

                            c: count  l: lock time  r: rows sent  t:query time

8. -r     反转顺序,默认文件倒叙排

9. -t NUM     显示前n条

10. -a不要将SQL语句中数字转换成N,字符串转换为S

11. -n NUM

12. -g pattern 正则匹配

13. -h hostname MySQL机器名或者ip

14. -i name

15. -1       总时间中不减去锁定时间

 

 

 

         

 

posted @ 2019-01-24 17:17  jacky912  阅读(129)  评论(0编辑  收藏  举报