我在服务器机子上新搭建了一个mysql数据库,用循环insert的方法插入数据,速度很慢(没有用事务),基本上是几十条每秒,但是我在虚拟机上新建了一个配置一样的数据库,插入的速度就很快,基本上是接近1000条每秒?这个是什么原因,我试了所以的主机和虚拟机,发现只要是虚拟机就很快,主机就很慢!是因为要写入磁盘什么的原因吗?引擎是innodb,myisam速度很快,mysqlinnodb虚拟机

解决方案 »

  1.   

    默认情况下, 每一条语句就是一个事务,innodb执行每个事务,所花费的写磁盘操作代价高(要写好几个地方),所以innodb比myisam来得慢.
    至于在虚拟机上比主机来得快,可能是虚拟机有延缓写入的机制吧(还没写磁盘,就报告写成功).
      

  2.   

    1 再次对比下mysql的参数2 主机和虚拟机的磁盘吞吐量如何
      

  3.   

    具体是那两个参数 是innodb_io_capacity 这个吗 都是200
    或者是 虚拟机对磁盘没有写操作
      

  4.   

    http://translate.google.com/#en/zh-CN/MyiSam右边有一个小喇叭,那个是标准的发音。
      

  5.   

    发错答案了。
    尝试设置 innodb_flush_log_at_trx_commit = 0 重启MYSQL
      

  6.   

    我和你有同样的问题,你的找到原因了吗,我还是找不到原因。我在虚拟机里的mysql上插入10000条数据,仅4秒,真实机器上要8分钟。 你找到原因了告诉我吧,谢谢你。 [email protected]