Mysql基础知识:索引
Mysql 索引
?
1. 索引的概念
索引是創建在表上的,對數據庫表中的一列或多列的值進行排序的一種結構。
索引有2種存儲類型:B型樹索引 和 哈希索引。InnoDB和MyISAM存儲引擎支持B型樹索引,MEMORY存儲引擎支持哈希索引。
優點:提高檢索數據的速度。對于有依賴關系的子表和父表之間的聯合,可提高查詢速度;使用分組和排序子句進行數據查詢,可顯著節省查詢時間。
缺點:創建和維護需要耗費時間,耗費的時間隨著數據量的增加而增加;索引需要占用物理空間;增加、修改和刪除索引時,需要動態的維護索引,會造成數據維護速度降低。
?
2.索引的分類
1)普通索引:
不加任何限制條件的索引。
2)唯一性索引:
UNIQUE參數設置唯一性索引。
3)全文索引:
使用FULLTEXT參數設置為全文索引。(全文索引只能創建在CHAR、VARCHAR或TEXT類型字段上)
4)單列索引:
為表的單個字段創建索引。
5)多列索引:
為表的多個字段創建一個索引。
6)空間索引:
使用SPATIAL參數設置。
?
3. 索引的設計原則
1)選擇唯一性索引;
2)為經常需要排序、分組和聯合操作的字段建立索引;
3)為常作為查詢條件的字段建立索引;
4)限制索引的數目;
5)盡量使用數據量少的索引;
6)盡量使用前綴索引;
7)刪除不再使用或很少使用的索引。
?
4. 創建索引
1)創建表的時候創建索引
CREATE TABLE 表名 ( 屬性名 數據類型 約束條件,屬性名 數據類型 約束條件,...UNIQUE | FULLTEXT | SPATIAL INDEX | KEY別名 ( 屬性名1 (長度) ASC | DESC));INDEX和KEY表示指定字段為索引,兩者作用相同選其一即可。
ASC/DESC表示升序排列和降序排列。
2)為已經存在的表創建索引
CREATE UNIQUE | FULLTEXT | SPATIAL INDEX 索引名ON 表名 ( 屬性名 (長度) ASC | DESC );3)用ALTER TABLE語句創建索引
ALTER TABLE 表名 ADD UNIQUE | FULLTEXT | SPATIAL INDEX 索引名 ( 屬性名 (長度) ASC | DESC );?
5. 刪除索引
DROP INDEX 索引名 ON 表名;?
轉載于:https://www.cnblogs.com/jx-yangbo/p/6391623.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Mysql基础知识:索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1小时学会建站(二):购买及绑定域名
- 下一篇: 结合awk列举大于指定容量大小所有文件目