开发者社区> 问答> 正文

MySQL中InnoDB load data以及select是不是很慢

需要在MySQL建表插入近100万的数据,主要用于select操作。
由于没怎么用过数据库,平时也就几百条记录了不得了,就先我在自己的机子上试了下(ubuntu),load data 导入进去也就10来秒。然后换到服务器windows平台上,用的是安装版的mysql。结果load data 需要6分多种,select也很慢。一直以为是windows的问题,但在自己的windows平台上虽然慢了点,也在20秒以内。
creat table都一样,我一直不知道是什么地方的原因。刚才show create table 看了下,发现区别主要在engine上。安装版本的默认引擎是InnoDB。
我就回ubuntu指定了InnoDB,也成了6分多种- -
虽然之前也听说过InnoDB因为事务和日志要慢点,但差这么多还是有问题的吧,大大给解释啊。
表是7个字段,主要是int和varcha。1个primary,一个3字段索引。

展开
收起
蛮大人123 2016-02-08 14:06:07 3543 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    论写性能,innodb确实要低于myisam,写的时候innodb性能消耗主要两方面:事务提交和写日志。
    但load data时,这两个都不存在,整个load data是一个事务,完成后会提交,也就没有回滚日志。之所以比myisam慢是因为做数据合法性的检查。
    如果你不是100万数据一次性导入,而是分几次,每次数据量递增,可以看出:myisam的平均导入速度,不随数据量增加而下降,是稳定的,而innodb则会随数据量增加而下降。

    2019-07-17 18:39:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像