mysql索引篇
為什麼要使用索引
索引的優點
索引的缺點
索引的分類
索引設計原則
為什麼要使用索引
索引在資料庫中的作用是快速找出某個列中乙個特定值的行,不使用索引的話,mysql必須從第一條記錄遍歷到相關行,表越大,花費的時間越多,但是如果有索引,就能快速的到達某個位置去搜尋資料檔案,索引對於優化資料庫查詢速度有著不可替代的作用。
索引的優點
通過建立索引,可以保證資料庫中每一條資料的唯一性
可以大大提高查詢的效率
可以加速表與表之間的連線
可以顯著的減少查詢中分組和排序的時間
總結:查詢速度快
索引的缺點
建立索引和維護索引需要時間,而且資料量越大時間越長
建立索引占用磁碟空間,如有大量索引,可能比資料檔案更快達到最大檔案尺寸
對錶中的資料進行增加、修改、刪除的時候,索引也要同時維護,降低了資料的維護速度
總結:維護效率低
索引的分類
普通索引(normal): 基本索引型別,允許在定義索引的列裡插入空值或重複值。
唯一索引(unique): 索引列值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。主鍵索引是一種特殊的唯一索引,不允許有空值。
單列索引: 只包含乙個列的索引,乙個表中可以有多個。
組合索引: 包含多個列的索引,查詢條件包含這些列的最左邊的字段的時候,索引就會被引用,遵循最左綴原則。
全文索引(full text): 在定義的值中支援全文查詢,允許空值和重複值,可以在char,varchar或者text欄位型別上建立,僅支援myisam儲存引擎。
空間索引: 針對空間資料做的索引,支援的資料型別有4種,分別是geometry,point,linestring和polygon。建立空間索引的列必須宣告為非空值(not null),僅支援myisam儲存引擎。
索引設計原則
不是越多越好
常更新的表越少越好
資料量小的表最好不要建立索引
不同的值比較多的列才需要建立索引
某種資料本身具備唯一性的時候,建立唯一性索引,可以保證定義的列的資料完整性,以提高查詢熟度
頻繁進行排序或分組的列(group by或者是order by)可以建立索引,提高搜尋速度
經常用於查詢條件的字段應該建立索引
Mysql索引優缺點
建立索引可以大大提高系統的效能。第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中...
mysql 索引優缺點
1 聯合索引 適用於最左匹配原則 例如 設定乙個聯合索引 三個字段 從最左邊開始匹配,如果遇到沒有使用索引,則這個索引後的設定的索引也將會失效。遇到範圍匹配時,索引也會失效。2 不使用索引情況 當數值是字串型別,條件沒有加引號查詢時則不會使用索引。模糊匹配,百分號 在前面 也不會使用索引如 sele...
MySql索引的優缺點
優點 有了索引.對於記錄數量很多的表,可以提高查詢速度.缺點 索引是占用空間的.索引會影響update insert delete速度 alert 1 索引要建立在where和join用到的字段上.2 以下操作符號可以應用索引 between,in,like不以 開頭 以下需要注意不使用索引 not...