MySQL 索引(重點!)

2021-10-02 10:10:40 字數 826 閱讀 9160

索引 :是排好序的快速查詢資料結構

mysql官網對索引的定義為:索引(index)是幫助mysql高效獲取資料的資料結構。(索引是資料結構)

索引的目的在於提高查詢效率,可以模擬字典。

索引兩大功能:

(索引就是用於查詢和排序)

(sql排序用order by ,desc是降序,asc 是公升序)

在資料之外,資料庫系統還維護著滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用(指向)資料,這樣就可以在這些資料結構上實現高階查詢演算法。這種資料結構就是索引 。

為了加快查詢,可以維護乙個二叉查詢樹,每個節點分別包含索引鍵值和乙個指向對應資料記錄實體地址的指標,這樣就可以運用二叉樹查詢在一定複雜度內獲取到相應的資料,從而快速的檢索出符合條件的記錄。

索引本身也很大,不可能全部儲存在記憶體中,因此索引往往以索引檔案的形式儲存在磁碟上。

索引優勢:

(1)類似圖書館建書目索引,提高資料檢索的效率,降低資料庫i/o成本。(降低檢索過程中需要讀取的資料量)

(2)通過索引列對資料進行排序,降低資料排序的成本,降低了cpu的消耗。(排序分組消耗的主要是記憶體和cpu資源,如果能夠在進行分組排序中利用好索引,將會大大降低cpu資源的消耗。)

索引劣勢:

(1)實際上索引也是一張表,所以也是要占用空間的。

(2)雖然索引大大提高了查詢速度,同時會降低更新表的速度,如對表進行insert,delete和update 。因為更新表時,mysql不僅要儲存資料,還要儲存一下索引檔案每次更新新增了的索引列的字段 。

(3)索引只是提高效率的乙個因素,如果mysql有大量的表,就需要花大量的時間精力去研究最優秀的索引,優化查詢。

mysql重點 mysql重點 正確使用

like xx 2 select from tb1 where name like cn 3 使用函式4 select from tb1 where reverse name wupeiqi 5 or6 select from tb1 where nid 1 or email seven live....

幾道MySQL索引相關的重點面試題

mysql 索引你真的懂嗎?這幾道題帶你了解索引的幾個重要知識點 以下回答全部是基於mysql的innodb引擎 例如對於下面這一張表 如果我們按照 name 欄位來建立索引的話,採用b 樹的結構,大概的索引結構如下 如果我們要進行模糊查詢,查詢name 以 張 開頭的所有人的id,即 sql 語句...

重點 mysql優化

使用短主鍵。聯結表時使用數字而非字串。當使用多部分鍵碼時,第一部分應該時最常用的部分。有疑問時,首先使用更多重複的列以獲得更好地鍵碼壓縮。如果在同一臺機器上執行mysql客戶和伺服器,那麼在連線mysql時則使用套接字而不是tcp ip 這可以提高效能7.5 可在連線mysql伺服器時不指定主機名或...