CREATE TABLE IF NOT EXISTS `church` (
`church_id` INT(11) NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(40) NOT NULL ,
`city_id` SMALLINT(4) UNSIGNED ZEROFILL NOT NULL ,
`validated` TINYINT(1) NULL ,
PRIMARY KEY (`church_id`) ,
INDEX `church.city_id-city.city_id_idx` (`city_id` ASC) ,
UNIQUE INDEX `church-city_id` (`name` ASC, `city_id` ASC) ,
CONSTRAINT `church.city_id-city.city_id`
FOREIGN KEY (`city_id`)
REFERENCES `city` (`city_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
我有我的本地主機(筆記本電腦)本表church
。當我插入它(它現在有10
行)時,它需要160毫秒。爲什麼這個MySQL插入太慢?
- church_id被用作其他表中的外鍵。
- 名稱和city_id應該是唯一的。
- 的city_id是一個外鍵
這不是一個而是很多,我做了什麼了嗎?
索引重建? –
@juergend是的,我也會這麼想,但索引過於複雜或不切實際?我已經使用了數年的數據庫,但是我從來沒有考慮到性能,因爲它只是爲了好玩。但現在我看到其他人抱怨大約40毫秒!所以我開始想知道。 –