在 MySQL 數據庫中,我們使用 CREATE TABLE 語句來創建一張表。當創建表的時候,我們可以通過指定索引來加速數據的查詢和操作。
在建表時,我們可以為表中的列添加索引。在列定義的結尾處添加UNIQUE
將該列定義為唯一索引。而如果需要為列添加普通索引,則可以在列定義后面添加INDEX
。
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, UNIQUE KEY `id` (`id`), INDEX `name` (`name`), INDEX `email` (`email`) ) ENGINE=InnoDB AUTO_INCREMENT=1;
在上面的代碼中,我們創建了一個名為user
的表,并為其中的id
列添加了唯一索引,為name
和email
列添加了普通索引。這樣一來,無論我們在查詢或更新操作中使用哪一列,都可以通過索引來快速定位數據。
我們還可以為多列創建聯合索引:
CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `quantity` int(11) NOT NULL, PRIMARY KEY (`id`), INDEX `user_product` (`user_id`, `product_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1;
在上面的代碼中,我們創建了一個名為order
的表,為其中的user_id
和product_id
列創建了一個聯合索引。這樣一來,查詢時,可以利用這個聯合索引進行快速定位。
需要注意的是,索引雖然可以提高查詢和更新的速度,但是過多的索引也會造成性能下降。因此,在建表時,需要根據實際情況權衡利弊,合理添加索引。