您现在的位置是:首页 >

mysql性能优化工具 mysql性能的检查和调优方法[2]

火烧 2022-01-31 07:27:48 1070
my ql性能的检查和调优方法[2] row i et ec 注意key row 和Extra这三项 这条语句返回的结果说明了该 ql会使用PRIMARY主键索引来查询 结果集数量为 条 Extra没

mysql性能的检查和调优方法[2]  

    row in set ( sec)

    注意key rows和Extra这三项 这条语句返回的结果说明了该sql会使用PRIMARY主键索引来查询 结果集数量为 条 Extra没有显示 证明没有用到排序或其他操作 由此结果可以推断 mysql会从索引中查询imgid= 这条记录 然后再到真实表中取出所有字段 是很简单的操作 key是指明当前sql会使用的索引 mysql执行一条简单语句时只能使用到一条索引 注意这个限制 rows是返回的结果集大小 结果集就是使用该索引进行一次搜索的所有匹配结果 Extra一般会显示查询和排序的方式 如果没有使用到key 或者rows很大而用到了filesort排序 一般都会影响到效率 例如

mysql性能优化工具 mysql性能的检查和调优方法[2]

    mysql> desc select * from imgs where userid= mini order by clicks desc limit ;

    row in set ( sec)

    这条sql结果集会有 条 用到了filesort 所以执行起来会非常消耗效率的 这时mysql执行时会把整个表扫描一遍 一条一条去找到匹配userid= mini 的记录 然后还要对这些记录的clicks进行一次排序 效率可想而知 真实执行时如果发现还比较快的话 那是因为服务器内存还足够将 条比较短小的记录全部读入内存 所以还比较快 但是并发多起来或者表大起来的话 效率问题就严重了 这时我把userid加入索引 create index userid on imgs (userid);然后再检查

    mysql> desc select * from imgs where userid= mini order by clicks desc limit ;

    row in set ( sec)

lishixinzhi/Article/program/MySQL/201311/29772  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码