Programing/Database
[MariaDB] Dummy Data 대량으로 만들기
개발자
2020. 11. 4. 03:05
반응형
수천만개의 DB를 어떻게 지지고 볶아야 union을 빠르게 할 수 있을까....하는 생각에
혼자 사용하는 테스트용 DB서버에 밀어넣으려 한다 (현재 AM 2:58)
1. 테이블 2개 생성
2. 저장 루틴 생성
3. 루틴 본문에 입력 후 저장
4. 생성된 프로시저 실행
* 주의사항 3000만개는 오래걸려서 heidiSQL이 멈춤.
궁금해서 show processlist; 쿼리를 쳐봤더니 등록을 열심히 하고 있다. (DB만 안죽으면 될 듯)
복사할 텍스트는 아래에..
-- 테이블 생성부분
CREATE TABLE `test_a` (
`firstName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`lastName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
UNIQUE INDEX `firstName_lastName` (`firstName`, `lastName`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;
CREATE TABLE `test_b` (
`firstName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`lastName` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`email` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
UNIQUE INDEX `firstName_lastName` (`firstName`, `lastName`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;
--루틴본문
BEGIN
DECLARE i INT DEFAULT 0;
DELETE FROM test_a;
DELETE FROM test_b;
WHILE (i <= 30000000) DO
INSERT INTO test_a (firstName, lastName)
VALUES (CONCAT('firstName_',i), CONCAT('lastName_',i));
INSERT INTO test_b (firstName, lastName, email)
VALUES (CONCAT('firstName_',i), CONCAT('lastName_',i), CONCAT('mail_', i, '@domain.com'));
SET i = i + 1;
END WHILE;
END
반응형