找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1663|回复: 0
打印 上一主题 下一主题

记录mysql性能查询过程的使用方法

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 08:21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            一切源于一个实验,请看下面的例子:
表:
[U]复制代码[/U] 代码如下:
CREATE TABLE IF NOT EXISTS `foo` (
`a` int(10) unsigned NOT NULL AUTO_INCREMENT,
`b` int(10) unsigned NOT NULL,
`c` varchar(100) NOT NULL,
PRIMARY KEY (`a`),
KEY `bar` (`b`,`a`)
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `foo2` (
`a` int(10) unsigned NOT NULL AUTO_INCREMENT,
`b` int(10) unsigned NOT NULL,
`c` varchar(100) NOT NULL,
PRIMARY KEY (`a`),
KEY `bar` (`b`,`a`)
) ENGINE=MyISAM;
我往两个表中插入了30w的数据(插入的时候性能差别InnoDB比MyISAM慢)
[U]复制代码[/U] 代码如下:
返回结果:

一次查询就会差别这么多!!InnoDB和MyISAM,赶紧分析分析为什么。
首先是使用explain来进行查看

确定两边都没有使用index,第二个查询查的rows,并且MyISAM的查询rows还比InnoDB少这么多,反而是查询慢于InnoDB!!这Y的有点奇怪。

没事,还有一个牛掰工具profile
具体使用可以参考:http://dev.mysql.com/doc/refman/5.0/en/show-profile.html
使用方法简单来说:
[U]复制代码[/U] 代码如下:
Mysql > set profiling = 1;
Mysql>show profiles;
Mysql>show profile for query 1;

这个数据中就可以看到MyISAM的Sending data比InnoDB的Sending data费时太多了。查看mysql文档
http://dev.mysql.com/doc/refman/5.0/en/general-thread-states.html

Sending data
The thread is reading and processing rows for a SELECT statement, and sending data to the client. Because operations occurring during this this state tend to perform large amounts of disk access (reads), it is often the longest-running state over the lifetime of a given query.

Sending data是去磁盘中读取select的结果,然后将结果返回给客户端。这个过程会有大量的IO操作。你可以使用show profile cpu for query XX;来进行查看,发现MyISAM的CPU_system比InnnoDB大很多。至此可以得出结论是MyISAM进行表查询(区别仅仅使用索引就可以完成的查询)比InnoDB慢。
            
            
您可能感兴趣的文章:
  • MySql 按时间段查询数据方法(实例说明)
  • MySQL 查询结果取交集的实现方法
  • MySQL大表中重复字段的高效率查询方法
  • mysql嵌套查询和联表查询优化方法
  • mysql 按照时间段来获取数据的方法
  • Mysql中分页查询的两个解决方法比较
  • MySql实现跨表查询的方法详解
  • mysql随机查询若干条数据的方法
  • mysql如何查询某一时间段内没有卖出的商品
  • MySQL查询随机数据的4种方法和性能对比
  • 清空mysql 查询缓存的可行方法
  • MySql查询时间段的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端