MySQL外鍵是一種約束,它確保了兩個表之間的數據一致性。在創建外鍵時,數據庫會對引用列和被引用列建立索引。
CREATE TABLE `table1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `table2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `table1_id` int(11) NOT NULL, `address` varchar(255) NOT NULL, PRIMARY KEY (`id`), CONSTRAINT `fk_table2_table1` FOREIGN KEY (`table1_id`) REFERENCES `table1` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在上述代碼中,當創建table2表時,我們使用外鍵約束fk_table2_table1將table2表的table1_id字段與table1表的id字段關聯起來。MySQL會自動為這兩個字段建立索引。
在實際操作中,如果我們經常對外鍵進行join操作,則應該為外鍵建立索引,以提高查詢性能。否則,如果不經常使用join操作,則可以不為外鍵建立索引。
總的來說,為外鍵建立索引并不是必須的,但如果需要查詢外鍵相關數據,建議為其建立索引。
上一篇css讓字的上端對齊