写点什么

MySQL 优化 - 批量插入与 1 亿条数据效率 COUNT

发布于: 2 小时前
MySQL优化-批量插入与1亿条数据效率COUNT

最近发现了一个 Mysql 快速导入数据方法load data infile

下面用几条命令来给大家看看,效率结果。

简单说下:

准备数据

1.txt ,开始只有 10 万数据,后来用 vim 添加到了 2000 万行,用 Windows 下的编辑器直接卡机的,Windows 下安装 Gvim 可以的。数据表类型 Innodb,没做任何的索引优化。


插入

1.导入 10 万行记录不到 1 秒

mysql> load data infile './1.txt' into table article (keywords);Query OK, 107200 rows affected (0.96 sec)Records: 107200  Deleted: 0  Skipped: 0  Warnings: 0
复制代码

插入 10w 数据,耗时 0.96 sec

2.导入 2000 万行的数据量

mysql> load data infile './1.txt' into table article (Query OK, 20000000 rows affected (5 min 53.02 sec)Records: 20000000  Deleted: 0  Skipped: 0  Warnings: 0
复制代码

插入 2000w 数据,耗时 5 min 53.02 sec

使用 count 统计

1.在 9000 万中统计数据(count)

mysql> select count(id) from article ;+-----------+| count(id) |+-----------+|  92893775 |+-----------+1 row in set (1 min 28.86 sec)
复制代码

耗时 1 min 28.86 sec

2.查询 1 亿 1 千万的数据,比上一个明显的时间多了

mysql> select count(id) from article ;+-----------+| count(id) |+-----------+| 112893775 |+-----------+1 row in set (5 min 18.83 sec)
复制代码

耗时:5 min 18.83 sec

3.用 count(*)时间减少了 25 秒左右

mysql> select count(*) from article ;+-----------+| count(*)  |+-----------+| 112893775 |+-----------+1 row in set (4 min 5.53 sec)
复制代码

耗时:4 min 5.53 sec

4.用 count(1)直接节省 1 分 40 秒

mysql> select count(1) from article ;+-----------+| count(1)  |+-----------+| 112893775 |+-----------+1 row in set (3 min 36.59 sec)
复制代码

耗时:3 min 36.59 sec

5.MYISAM 引擎

mysql> select count(1) from test;+-----------+| count(1)  |+-----------+| 326039962 |+-----------+1 row in set (0.08 sec)
复制代码

耗时:0.08 sec

用户头像

多读书多看报,少吃零食多睡觉 2018.08.07 加入

还未添加个人简介

评论

发布
暂无评论
MySQL优化-批量插入与1亿条数据效率COUNT