• 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       总时间中不减去锁定时间

             

  • 相关阅读:
    ADC测试matlab代码
    matlab的滤波器仿真——低通滤波器与插值滤波器
    PDF转Image最终方案
    多线程和蕃茄炒蛋
    git学习总结
    踩坑了,当前目录问题
    Angular 1.x 升级到 Angular 2
    打造AngularJs2.0开发环境
    发布一个自用的ansi转utf8程序
    用itextsharp打印pdf示例
  • 原文地址:https://www.cnblogs.com/jacky912/p/10315666.html
Copyright © 2020-2023  润新知