我的MyIsam表几乎没有记录(约20条):
CREATE TABLE `_cm_dtstd_37` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`NUMBER` int(10) NOT NULL COMMENT 'str',
`DESCRIPTION` char(32) NOT NULL COMMENT 'str',
PRIMARY KEY (`id`),
UNIQUE KEY `PHONE` (`NUMBER`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='==CORless Numbers=='
单次插入:
INSERT IGNORE INTO _cm_dtstd_37 VALUES(NULL, 55555, '55555')
执行时间很长(大约5至7分钟),并使MySql服务器将每个下一个查询置于“等待”状态。在完成第一次INSERT操作之前,不会执行其他任何查询(甚至那些读取/写入其他表的查询)。
我不知道如何调试它以及在哪里寻找任何线索。
所有插入到另一个表的效果很好,当不插入野性表时,整个数据库都很好。
答案 0 :(得分:1)
这是从 MyISAM 迁移到 InnoDB 的一大原因。
MyISAM 允许多个同时读取 (SELECT
),但任何类型的写入都会锁定整个表,即使是针对写入。
InnoDB 使用“行锁定”,因此大多数同时访问一个表不会对彼此产生明显影响。