InnoDBでPrimary Keyを設定していないテーブルを作ると
おそろしくレスポンスが悪くなるという話だったので、試してみる。
CREATE TABLE t1 (num int not null,val varchar(50) not null);
用意したINSERT文。
INSERT INTO t1 VALUES (1,'1');
INSERT INTO t1 VALUES (2,'2');
...
INSERT INTO t1 VALUES (65535,'65535');
UPDATE文。
UPDATE t1 SET val = '....' WHERE num = 1;
...
DELETE文。
DELETE FROM t1 WHERE num = 1;
...
key全くなし。
INSERT 8sec、UPDATE 1hour34min17sec、DELETE 31min46sec。
PRIMARY KEY(num)
INSERT 9sec、UPDATE 15sec、DELETE 12sec。
UNIQUE KEY(num)
INSERT 9sec、UPDATE 11sec、DELETE 11sec。
KEY(num)
INSERT 9sec、UPDATE 12sec、DELETE 11sec。
ただのKEYとPRIMARY KEYで多少差が出てくれるかと思ってたけど、そうでもなかった。
件数増やしたら多少出るかしら。
あと、レプリケーション環境でPrimary Keyがないと悲惨なことになったりする場合もあるので、
やっぱりセオリー通りSERIALでも良いからPrimary Keyは付けましょうって感じで。
⇒Primary Keyがないテーブル その2
0 件のコメント :
コメントを投稿