MySQL 大批量数据插入
有些项目,需要频繁的插入数据到 MySQL 数据库中,设计目标要求能支持平均每秒插入
1000 条数据以上。目前功能已经实现,不过一做压力测试,发现数据库成为瓶颈,每秒仅
能插入 100 多条数据,远远达不到设计目标。
到 MySQL 官方网站查了查资料,发现 MySQL 支持在一条 INSERT 语句中插入多条记录,格
式如下:
INSERT table_name (column1, column2, ..., columnN)
VALUES (rec1_val1, rec1_val2, ..., rec1_valN),
(rec2_val1, rec2_val2, ..., rec2_valN),
... ...
(recM_val1, recM_val2, ..., recM_valN);
按 MySQL 官方网站,用这种方法一次插入多条数据,速度比一条一条插入要快很多。在一
台开发用的笔记本电脑上做了个测试,果然速度惊人。
测试环境:DELL La%tude D630, CPU T7250 @ 2.00GHz, 内存 2G。Windows XP Pro 中文版
SP2,MySQL 5.0 for Windows。
MySQL 是新安装的,建立了一个名为 test 的数据库,在 test 数据库建了一个 t_integer 表,
共两个字段:test_id 和 test_value,两个字段都是 INTEGER 类型,其中 test_id 是 Primary
Key。
准备了两个 SQL 脚本文件(写了个小程序生成的),内容分别如下:
-- test1.sql
TRUNCATE TABLE t_integer;
INSERT t_integer (test_id, test_value)
VALUES (1, 1234),
(2, 1234),
(3, 1234),
(4, 1234),
(5, 1234),
(6, 1234),
... ...
(9997, 1234),
(9998, 1234),
(9999, 1234),
(10000, 1234);
-- test2.sql
TRUNCATE TABLE t_integer;
INSERT t_integer (test_id, test_value) VALUES (1, 1234);
- 1
- 2
- 3
- 4
前往页