问题背景:
在做性能测试时,通常需要根据业务模型在数据库中预置大量数据。我一开始的做法是使用python生成INSERT INTO语句的SQL脚本后,再导入对应数据库。
使用中会发现速度很慢,1000万条数据3~4个小时能导完已经算很快的了,这可怎么办呢?
解决办法:
使用LOAD DATA INFILE语句
LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并写入一个表中。文件名称必须为一个文字字符串。
语法:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char' ]
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...)]
示例:
要导入数据的表结构如下所示
CREATE TABLE `product` (
`id` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`price` double(5,2) NOT NULL
)
1. 准备要导

在性能测试中,通过LOAD DATA INFILE语句能快速导入大量数据到MySQL,相比INSERT INTO语句速度提升显著。本文详细介绍了如何使用LOAD DATA INFILE,包括准备数据文件、将文件导入数据库服务器、启用--local-infile选项以及执行导入操作。此外,还提及了数据导出和跨数据库导入的方法。
最低0.47元/天 解锁文章
483

被折叠的 条评论
为什么被折叠?



