2011-08-13 8 views
0

私は次の構造を持つ(Testという名前)本当に簡単のInnoDBテーブルにいくつかのテストをやってる:ユーザーIDにInnoDBの奇妙な公演

Id int(10) unsigned NOT NULL AUTO_INCREMENT 
UserId int(10) NOT NULL 
Body varchar(512) COLLATE utf8_unicode_ci NOT NULL 
CreatedAt datetime NOT NULL 

つの追加のインデックス:

KEY Idx_Test_UserId (UserId) USING BTREE 

私がしようこのクエリを実行するには...

INSERT INTO Comments (UserId,Body,CreatedAt) VALUES (1,'This is a test',NOW()); 

...時々私は数ミリ秒で作業を完了するいくつかの他の時間は約1秒かかる。

私はこの特定のテーブルでテストを行っている唯一の人です。私は実際にこのような実行時差があることを理解していません。

最後に、私がMyISAMテーブルで同じテストを行っているときには、何の問題もありません。

+0

あなたのOSとMySQLのバージョンは何よりも高い並行性を関与と思いますか? – Mchl

+0

私のOSはWindow 7とMySQL v5.5です – user257938

+0

はhttp://serverfault.com/に属していますシステム管理者とデスクトップサポート担当者のためのQ&A – Mchl

答えて

1

InnoDBはデフォルトでAUTOCOMMITモードで動作します。つまり、すべてのインサートでディスクへの書き込み操作が2回必要です。マシンにディスクドライブが1つしかない場合、時にはそれを少し待たなければならないことがあります。また、AFAIR InnoDBは(それはまだケースだかどうかわからない)、Windowsのディスクへの書き込みとパフォーマンスproblemwsのビットを持っていましたが、私はそれが1

+0

私が話していなかったことは、単純なSELECT文でも実行時の問題発生します... – user257938

+0

この問題をhttp://serverfault.com/ – Mchl

+0

にお寄せいただきまして、ありがとうございます。 – user257938

関連する問題