mysql - 如何加快 MySQL 百万行的插入速度?
问题描述
我想10 million
向 MySQL 表中插入行。但它在 10 小时 12 米 13 秒 29 毫秒内完成。如何加快速度?
这是我的 SQL
USE foo;
DROP TABLE IF EXISTS tmp;
CREATE TABLE tmp (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
school_id CHAR(4) NOT NULL,
student_id CHAR(6) NOT NULL,
INDEX school_id(school_id),
INDEX student_id(student_id),
INDEX school_id_and_student_id(school_id, student_id)
);
DROP PROCEDURE IF EXISTS tmpproc;
CREATE PROCEDURE tmpproc() BEGIN
DECLARE i INT UNSIGNED DEFAULT 0;
WHILE i < 10000000 DO
INSERT INTO tmp (school_id, student_id)
VALUES (SUBSTR(MD5(RAND()) FROM 1 FOR 4), SUBSTR(MD5(RAND()) FROM 1 FOR 6));
SET i = i + 1;
END WHILE;
END;
CALL tmpproc();
解决方案
推荐阅读
- firebase - 通过 firebase-tools API 部署,无需先前登录
- python - 在python中以两种方式在两个文件之间传递变量
- spring-security - Spring Security OAuth 2 与传统 Spring MVC
- android - 如何使按钮适合所有屏幕?
- ios - Swift:读取 plist 文件
- c# - Rest API 恢复上次连接
- c# - 从 JObject 获取数据
- node.js - req.user 在 Google Passport 策略中不可用
- python - pandas 是仅限本地的图书馆吗
- c# - 转换为 IEnumerable
LINQ 查询的结果