共计 893 个字符,预计需要花费 3 分钟才能阅读完成。
本篇内容介绍了“如何提高 mysql 插入数据的速度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
需要在 mysql 中插入 2000 万条记录,用 insert 语句插入速度很有限,每秒钟几百条,放在 hadoop 集群上跑也是这个速度,可能是的问题了,网上看到 sql server 和 oracle 的 insert 速度也不是很快。比较简单的优化方法如下:
1、在一条 insert 语句中插入多条记录
[sql]
INSERT INTO tablename (field0, field1, …) VALUES
(value0, value1, …),
(value0, value1, …),
(value0, value1, …),
…
(value0, value1, …)
这样插入速度可以提高很多倍,但还是不够块,对于 2000 万条记录,每秒钟一两千条的插入速度还是太慢。
2、从文本文件导入数据
可以从文本文件直接导入记录,不过需要文本文件是行记录,并且每个字段之间用相同的字符隔开、每行之间也用相同的字符隔开。
写了个程序把文本文件的格式处理一下,就可以在 mysql 客户端使用如下语句导入数据了:
[sql]
mysql LOAD DATA LOCAL INFILE fileName INTO TABLE tableName FIELDS TERMINATED BY \t LINES TERMINATED BY \n
其中 \t 和 \n 分别是字段和行的分隔符,在不同的情况下可能不一样。
用这种方式,感觉导入的速度主要和文件的大小有关,和记录的条数关系不太(可能是 2000 万的记录还不够多吧。。)
导入一个 800MB 的文本文件(2000 万行),在单机上预处理用了 3 分钟,导入数据库用了 7 分钟(机器配置是 i5-2400CPU、8GB 内存、硬盘读取速度大约 90MB/S)
“如何提高 mysql 插入数据的速度”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!