MySQL 5.1 から 5.5 にアップグレードしました。3 つのインデックスを持つ MyISAM テーブルに最大 20 万行を挿入するのに最大 3 分かかっていた挿入スクリプトが、現在では最大 8 分かかります。インデックスを削除すると問題が解決します!?
読み取り (選択) は問題ありません (5.1 よりも 5.5 の方が高速です)
インデックスの動作に何か違いがありますか、それとも微調整が必要な奇妙な設定パラメータがあるのでしょうか?
ご指摘ありがとうございます。
システム情報:
Fedora 17、Mysql 5.5.29-log、16GB RAM
MyISAM キー バッファ = 4GB
MyISAM インデックス サイズ = ~800 MB
MyISAM テーブル サイズ = 4.4 GB
INNODB バッファ プール = 8GB
INNODB テーブル + インデックス サイズ = ~12GB
- リクエストごとのテーブル定義は次のとおりです。
テーブルを作成MY_TABLE
( MY_TABLE_ID
int(10) unsigned NOT NULL AUTO_INCREMENT、
FIELD_1
char(1) NOT NULL、
FIELD_2
int(11) NOT NULL、
FIELD_3
varchar(64) NOT NULL、
FIELD_4
varchar(64) DEFAULT NULL、
FIELD_5
varchar(64) DEFAULT NULL、
FIELD_6
varchar(8) DEFAULT NULL、
FIELD_7
varchar(64) DEFAULT NULL、
FIELD_8
varchar(64) DEFAULT NULL、
FIELD_9
varchar(64) DEFAULT NULL、
FIELD_10
varchar(16) DEFAULT NULL、
FIELD_11
varchar(124) DEFAULT NULL、
FIELD_12
varchar(124) DEFAULT NULL、
FIELD_13
varchar(124) DEFAULT NULL ,
FIELD_14
varchar(32) デフォルト NULL,
FIELD_15
varchar(32) デフォルト NULL,
FIELD_16
varchar(64) デフォルト NULL,
FIELD_17
varchar(64) デフォルト NULL,
FIELD_18
varchar(64) デフォルト NULL,
FIELD_19
varchar(64) デフォルト NULL,
FIELD_20
char(1) デフォルト NULL,
FIELD_21
文章、
FIELD_22
text,
FIELD_23
text,
FIELD_24
varchar(32) DEFAULT NULL,
FIELD_25
varchar(64) DEFAULT NULL,
FIELD_26
varchar(16) DEFAULT NULL,
FIELD_27
varchar(64) DEFAULT NULL,
FIELD_28
varchar(64) DEFAULT NULL,
FIELD_29
text,
FIELD_30
int(11) NOT NULL,
FIELD_31
varchar( 16) DEFAULT NULL,
FIELD_32
varchar(16) DEFAULT NULL,
CREATION_DATE
int(11) NOT NULL,
MODIFICATION_DATE
タイムスタンプ NULL DEFAULT NULL,
PRIMARY KEY ( MY_TABLE_ID
),
KEY I_FIELD_4
( FIELD_4
),
KEY I_FIELD_2
( FIELD_2
),
KEY I_FIELD_3
( FIELD_3
) ) ENGINE=MyISAM DEFAULT CHARSET=latin1