前言
正文索引(index)是一種幫助mysql高效獲取資料的資料結構,索引的目的在於提高查詢效率,可以模擬字典。可以簡單的理解為「排好序的快速查詢資料結構」。
資料本身之外,資料庫還維護著乙個滿足特定查詢演算法的資料結構,這些資料結構以某種方式指向資料,這樣就可以在這些資料結構的基礎上實現高階查詢演算法,這種資料結構就是索引。
例:如果在英漢詞典中要找」super「這個詞,我們肯定是先找到」s「然後在」s「下查詢」u「,然後再依次找到」per「,最終找到整個詞「super」。
其中每個字母都是乙個索引,現在想想如果沒有索引是不是要從a-z所有的字母都要找一遍呢。
優點:1、提高資料檢索的效率,降低資料庫的io成本。
2、通過索引對資料進行排序,降低資料排序的成本,降低了cpu的消耗。
缺點:1、雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert、update和delete。因為更新表時,mysql不僅要儲存資料,還要儲存一下索引檔案。
2、索引是一張表,該錶儲存了主鍵與索引字段,並指向實體表的記錄,所以索引列也要占用空間。
下圖就是一種可能的索引方式例項:
1、建立普通索引
單獨建立索引,最基本的索引建立
create index 索引名稱 on 表名稱(欄位名稱);
2、建立唯一索引
唯一索引:索引的值必須唯一,但允許為空值。
create unique index 索引名稱 on 表名稱(欄位名稱);
3、刪除索引
drop index [索引名稱] on 表名稱;
4、顯示索引資訊
show index from 表名稱;
結束 索引簡簡單單的了解
啥是索引 sql中高效查詢資料的一種資料結構,一句話就是資料排好序後的快速查詢的資料結構 索引分類 索引基本語法 建立索引 第一種 create unique index index name on table name columname 第二種 alert table name add uniq...
簡簡單單編譯原理
都說編譯原理挺難,其實它並不像大家想象中的那麼難,it s so easy 總的來說編譯原理可以分為以下幾個知識點 文法的分類 不確定的有限狀態自動機到確定的有限狀態自動機的轉換 正規表示式。掌握了這三個知識點,編譯原理中每個題的道理了,其實編譯原理就是這麼回事。下面具體介紹上面說的三個知識點 1....
簡簡單單寫程式
寫程式這麼多年,總有幾百萬行了。感覺,程式寫的方向,總的來說越來越簡單。乙個函式,簡簡單單幾行就完了,乙個類,簡簡單單幾個公有方法,也就完了。簡單,就不容易出錯,自己看自己的 看昏了的也有,乙個函式幾千行,人的腦子,堆疊顯然不夠用,看了後面,忘了前面,何苦呢。簡單,就好懂,乙個工程完了,心裡其實很發...