【发布时间】:2014-06-16 01:16:27
【问题描述】:
我意识到,当我在表中创建外键时,索引会自动添加。
在我的桌子上:
CREATE TABLE `SupplierOrderGoods` (
`shopOrder_id` INT(11) NOT NULL,
`supplierGood_id` INT(11) NOT NULL,
`count` INT(11) NOT NULL,
PRIMARY KEY (`shopOrder_id`, `supplierGood_id`),
CONSTRAINT `FK_SupplierOrderGoods_ShopOrders` FOREIGN KEY (`shopOrder_id`) REFERENCES `shoporders` (`id`),
CONSTRAINT `FK_SupplierOrderGoods_SupplierGoods` FOREIGN KEY (`supplierGood_id`) REFERENCES `suppliergoods` (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
索引
INDEX `FK_SupplierOrderGoods_SupplierGoods` (`supplierGood_id`)
已自动创建。
没关系,该索引已创建,正如我在另一篇文章中发现的那样。我正在寻找用于和发现哪些索引,它们用于优化表中的搜索。 现在,我知道,我必须使用索引来优化数据库的工作。
此外,我发现索引可能很复杂(不是在一个字段上,而是在某些字段上)。在那种情况下,我想问我是否应该使用复杂索引:
INDEX `FK_ShopOrders_SupplierGoods` (`shopOrder_id`, `supplierGood_id`),
还是两个简单的索引?:
INDEX `FK_SupplierOrderGoods_SupplierGoods` (`supplierGood_id`),
INDEX `FK_SupplierOrderGoods_ShopOrders` (`shopOrder_id`),
【问题讨论】: