MySQL 添加和刪除索引
摘要:介紹添加、刪除和顯示索引的方法。
??今天為大家演示MySQL數據庫索引的常見操作,包括創建、刪除和查詢等。下面首先介紹為什么需要添加索引。
索引的作用
??索引用于快速找出在某一列中有一特定值的行。如果不使用索引,MySQL必須從第一條記錄開始讀完整張表,直到找出相關的行;表越大,查詢數據所花費的時間就越多。如果表中查詢的列有一個索引,那么MySQL能夠快速定位一個位置進而搜索數據文件,避免查檢索有數據,從而節省很多時間。
普通索引
??普通索引是最基本的索引,它沒有任何限制。例如,MyISAM和InnoDB存儲引擎只支持BTREE索引,在InnoDB引擎中,數據庫創建的索引都是以B+樹的形式存在。
??這里介紹兩種創建普通索引的方式:
??① 以修改表結構的方式添加索引:
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
??② 創建表的同時創建索引:
CREATE TABLE `test1` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL COMMENT '姓名',
`course` varchar(20) DEFAULT NULL COMMENT '課程',
`score` int(4) DEFAULT NULL COMMENT '分數',
create_time datetime DEFAULT NULL COMMENT '創建時間',
index [indexName] (name)
) ENGINE=InnoDB CHARACTER SET = utf8mb4 COMMENT = '測試表';
??此demo中,同時展示了如何創建表的主鍵。
創建唯一索引
??唯一索引與普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須是唯一的,創建方法和普通索引類似:
ALTER TABLE table_name ADD UNIQUE uk_index_name ( `column` )
??下面是創建其它所有的一些方法:
- 添加FULLTEXT(全文索引)
ALTER TABLE table_name ADD FULLTEXT ( `column`)
- 添加組合索引
ALTER TABLE table_name ADD INDEX index_name ( `column1`, `column2`, `column3` )
刪除索引和主鍵
??如果創建了某個索引,但是,發現不需要了,就可以使用如下兩種方法進行刪除:
DROP INDEX index_name ON table;
或者
ALTER table table_name DROP INDEX index_name;
??刪除主鍵的方法如下:
ALTER TABLE table_name DROP PRIMARY KEY;
顯示索引信息
??可以使用 SHOW INDEX 命令列出表中已經創建的索引信息。輸出信息通過添加 \G 來格式化,提高可讀性。實例如下:
SHOW INDEX FROM table_name\G
唯一索引和普通索引如何選擇
??唯一索引和普通索引在查詢性能上基本沒有差別,但在更新上普通索引會快于唯一索引。所以在可以選擇普通索引的前提下盡可能選擇普通索引。如果需要限制索引列的值必須唯一,則只能使用唯一索引。
結束語
??對于Wiener以上的話題,大家又有什么自己的獨特見解呢?歡迎在下方評論區留言!
讀后有收獲,小禮物走一走,請作者喝咖啡。
Buy me a coffee. ?Get red packets.作者:樓蘭胡楊
本文版權歸作者和博客園共有,歡迎轉載,但請注明原文鏈接,并保留此段聲明,否則保留追究法律責任的權利。

浙公網安備 33010602011771號