在1核1G的这种云服务器上用YUM方式安装了一个MSYQL
测试插入1万条数据,MyIsam插入为什么比Innodb慢,MyIsam用了10s,Innodb用1s。
插入脚本如下:BEGIN
  set session autocommit=0;
  truncate table t1;
  set @starttime = unix_timestamp(current_timestamp());
  set @i = 0;
  set @num = 10000;
  while @i<@num do
insert into t1(id1,id2,content) values(@i,@i,'aaa');
set @i = @i +1;
  end while;
  commit;
  set @endime = unix_timestamp(current_timestamp());
  select @endime - @starttime;
END表就id1,id2,content三个字段,两个int,一个varchar,实在是很奇怪

解决方案 »

  1.   

    MyIsam适合读多写少的场景,  一般情况下都用 InnoDB
      

  2.   

    MyISM的数据结构,和Innodb的数据接口。结构也不一样。
      

  3.   

    找到问题了,把binlog关了就可以,MyIsam的binlog写入比Innodb大的多
      

  4.   

     嗯,嗯
    myisam不支持事务,innodb支持事务
    5.7以后默认的数据引擎是innodb。根据你们的实际场景来选择。
     你们使用场景为什么需要myisam?
      

  5.   


    我们场景是OLAP,不过8.0其实是建议使用innodb代替myisam,myisam可优化的余地很小
      

  6.   

    是的,
    Innodb适合OLTP场景。
      

  7.   

    自己的经验
    1. 选MySQL的话无脑用InnoDB。
    2. 大量插入用bulk insert。MySQL下就是values后面跟多条记录。
      

  8.   

    有一个rewriteBatchedStatements参数,可以在url中配置,实现批量插入。对innodb性能提高很明显。