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

2270阅读 0评论2014-12-19 oracle狂热分子
分类:Mysql/postgreSQL


                 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没有任何优势.


 

上一篇:从OS角度观察ORACLE实例进程的启动
下一篇:MySQL Cluster和RAC实现比较