【发布时间】:2012-11-19 11:02:57
【问题描述】:
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 毫秒。
- church_id 在其他表中用作外键。
- 名称和city_id 一起应该是唯一的。
- city_id 是外键
这不是很多,我做错了吗?
【问题讨论】:
-
@juergend 是的,我也这么认为,但是索引是否过于复杂或不必要?我已经使用数据库几年了,但我从来没有考虑过性能,因为这只是为了好玩。但现在我看到其他人抱怨 40 毫秒!所以我开始怀疑。
标签: mysql optimization