2

我们刚刚从 MySQL 5.1 升级到 5.5。以前需要约 3 分钟才能将约 200k 行插入具有 3 个索引的 MyISAM 表中的插入脚本现在需要约 8 分钟!删除索引可以解决问题!?

读取(选择)很好(5.5 比 5.1 更快)

索引行为是否有所不同,或者可能需要调整一些奇怪的配置参数?

提前感谢您的任何指点!

系统信息:

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_IDint(10) unsigned NOT NULL AUTO_INCREMENT,
FIELD_1char(1) NOT NULL,
FIELD_2int(11) NOT NULL,
FIELD_3varchar(64) NOT NULL,
FIELD_4varchar(64) DEFAULT NULL,
FIELD_5varchar(64) DEFAULT NULL,
FIELD_6varchar(8) DEFAULT空值,
FIELD_7varchar(64) 默认空值,
FIELD_8varchar(64) 默认空值,
FIELD_9varchar(64) 默认空值,
FIELD_10varchar(16) 默认空值,
FIELD_11varchar(124) 默认空值,
FIELD_12varchar(124) 默认空值,
FIELD_13varchar(124) 默认空值,
FIELD_14varchar(32) 默认空值,
FIELD_15varchar(32) 默认空值,
FIELD_16varchar(64) 默认空值,
FIELD_17varchar(64) 默认空值,
FIELD_18varchar(64) 默认空值,
FIELD_19varchar(64) 默认空值,
FIELD_20char(1) 默认空值,
FIELD_21文本,
FIELD_22text,
FIELD_23text,
FIELD_24varchar(32) DEFAULT NULL,
FIELD_25varchar(64) DEFAULT NULL,
FIELD_26varchar(16) DEFAULT NULL,
FIELD_27varchar(64) DEFAULT NULL,
FIELD_28varchar(64) DEFAULT NULL,
FIELD_29text,
FIELD_30int(11) NOT NULL,
FIELD_31varchar( 16) DEFAULT NULL,
FIELD_32varchar(16) DEFAULT NULL,
CREATION_DATEint(11) NOT NULL,
MODIFICATION_DATEtimestamp 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

4

2 回答 2

0

好吧,经过大量故障排除后,问题已缩小到坏驱动器。不是 MySQL 5.5。现在用不同的驱动器一切都很好..

于 2013-02-01T21:33:15.497 回答
0

RAM 太拥挤。

对于 16GB RAM 和 InnoDB 和 MyISAM 的混合:

key_buffer_size = 1600M
innodb_buffer_pool_size = 6G
于 2016-05-04T19:14:40.413 回答