🐈
MySQLで遊ぶ:沢山データを入れて重たいテーブルを生成
はじめに
重たいDBを作成したくなったので作成します。
材料
Tb
:重たくなるテーブル
Tb_in_10000data
:Tbに1万件データを書き込むプロシージャ
SQL
Tb
id
とname
を持つ。
create table Tb(
id int auto_increment primary key,
name char(16)
);
Tb_in_10000data
delimiter $$
create procedure Tb_in_5000000data()
begin
declare i int default 0;
while i < 500000 do
insert into Tb(name) values
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10)),
( SUBSTRING( MD5(RAND()),1,10));
set i = i + 1;
end while;
end $$
delimiter ;
実行
call Tb_in_5000000data();
MacBookProで実行したところ、1時間以上かかるので気をつけてください。
重たいか確認
select * from Tb where name LIKE "%bbbbbb%";
+---------+------------+
| id | name |
+---------+------------+
| 93626 | bbbbbb41fc |
| 2847834 | bbbbbb41fc |
| 3867386 | bbbbbb41fc |
| 4354559 | 8ac1bbbbbb |
+---------+------------+
4 rows in set (2.24 sec)
検索するクエリで2秒ほどかかるようになりました。
Discussion