Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2796873
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Mysql/postgreSQL

2014-12-19 23:01:06


                 MySQL innodb引擎和myisam的引擎执行对比测试

      不知道从什么时候开始有一股传言总是认为myiam的查询执行要比innodb快.我们知道
myisam只有索引的cache,而没有自己的buffer cache,只能依赖os的文件系统cache来
加快读数据,而innodb是有自己的数据cache,从某种程度上来说,innodb管理cache比os
去管理文件系统的cache更加好才对,而为什么说innodb的查询效率反而更加低下呢?

    我通过sysbench工具,把oltp-read-only参数设为on,这样确保sql语句都是一些简单的
select查询.然后来测试下两者的执行效率.

    先初始化数据.

[root@c12 ~]# sysbench --test=oltp 
--mysql-host=192.168.10.145 --mysql-port=3307
--mysql-user=root --mysql-password=123456 --mysql-db=db1
--oltp-table-size=100000 --num-threads=8 prepare

  初始化完成后再使用以下参数进行测试,只是每次的线程数不一样
 sysbench --test=oltp  --mysql-host=192.168.10.145 --mysql-port=3307 --mysql-user=root
--mysql-password=123456 --mysql-db=db1 --oltp-table-size=100000 --num-threads=N --oltp-read-only=on  run

先测试innodb的效率

线程数    QPS
4       4881
8       7712

 

修改引擎为myisam

mysql> alter table sbtest engine=myisam;
Query OK, 100000 rows affected (1.14 sec)
Records: 100000  Duplicates: 0  Warnings: 0


线程数  QPS
4       4675
8       7668


对于每个线程数,我测试的次数大于五次,取平均值,发现在简单的select语句中,myisam相比innodb没有任何优势.


 

阅读(2218) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~