请教MyIsam插入为什么比Innodb慢

比不揪 2018-10-20 05:31:18
在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,实在是很奇怪

...全文
587 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
To丶ry 2018-11-14
  • 打赏
  • 举报
回复
有一个rewriteBatchedStatements参数,可以在url中配置,实现批量插入。对innodb性能提高很明显。
tq1086 2018-11-11
  • 打赏
  • 举报
回复
自己的经验
1. 选MySQL的话无脑用InnoDB。
2. 大量插入用bulk insert。MySQL下就是values后面跟多条记录。
kingmax54212008 2018-11-08
  • 打赏
  • 举报
回复
是的, Innodb适合OLTP场景。
比不揪 2018-11-06
  • 打赏
  • 举报
回复
引用 5 楼 kingmax54212008 的回复:
嗯,嗯
myisam不支持事务,innodb支持事务
5.7以后默认的数据引擎是innodb。

根据你们的实际场景来选择。
你们使用场景为什么需要myisam?


我们场景是OLAP,不过8.0其实是建议使用innodb代替myisam,myisam可优化的余地很小
kingmax54212008 2018-11-05
  • 打赏
  • 举报
回复
嗯,嗯
myisam不支持事务,innodb支持事务
5.7以后默认的数据引擎是innodb。

根据你们的实际场景来选择。
你们使用场景为什么需要myisam?
比不揪 2018-11-02
  • 打赏
  • 举报
回复 1
找到问题了,把binlog关了就可以,MyIsam的binlog写入比Innodb大的多
kingmax54212008 2018-10-26
  • 打赏
  • 举报
回复
MyISM的数据结构,和Innodb的数据接口。结构也不一样。
伟洪winni 2018-10-25
  • 打赏
  • 举报
回复
MyIsam适合读多写少的场景, 一般情况下都用 InnoDB
王桑的一天 2018-10-25
  • 打赏
  • 举报
回复
是不是因为压缩

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧