要了命的索引

2021-09-25 18:07:40 字數 796 閱讀 8338

1、聚集索引:葉子節點(資料頁)存放整張表的行資料,一張表只能有乙個聚集索引,按照每張表的主鍵構造一棵b+樹,如果沒有定義主鍵,innodb會試著使用唯一的非空索引來代替。如果沒有這種索引,innodb就會定義隱藏的主鍵然後在上面進行聚集。

2、非聚集索引(輔助索引):葉子節點存放的是鍵值以及指向資料頁的偏移量,需要進行二次查詢

聚集索引和非聚集索引的區別:葉節點存放的資訊不同;聚集索引只有乙個,非聚集索引可以建立多個;

3、覆蓋索引:即從輔助索引中查詢,若找不到再去聚集索引中找。如果要查詢的字段值在輔助索引上就有,就不用再查聚集索引了,這顯然會減少io操作。

4、雜湊索引:儲存引擎會給所有索引列計算乙個雜湊碼,雜湊索引只包含雜湊值和行指標(key---value),雜湊索引只支援等值查詢,不支援大於,小於等比較。

5、聯合索引:覆蓋表中兩列或者以上的索引,最左匹配原則

6、主鍵索引:唯一且不為空

7、唯一索引:唯一可以為空

8、普通索引:不唯一,可以為空

using index :使用覆蓋索引的時候就會出現

using where:在查詢使用索引的情況下,需要回表去查詢所需的資料

using index condition:在mysql 5.6版本後加入的新特性(index condition pushdown);會先條件過濾索引,過濾完索引後找到所有符合索引條件的資料行,隨後用 where 子句中的其他條件去過濾這些資料行;查詢使用了索引,但是需要回表查詢資料

using index & using where:查詢使用了索引,但是需要的資料都在索引列中能找到,所以不需要回表查詢資料

mysql索引要了解的幾個注意

索引是做什麼的?索引用於快速找出在某個列中有一特定值的行。不使用索引,mysql必須從第1條記錄開始然後讀完整個表直到找出相關的行。表越大,花費的時間越多。如果表中查詢的列有乙個索引,mysql能快速到達乙個位置去搜尋到資料檔案的中間,沒有必要看所有資料。大多數mysql索引 primary key...

C 3DES加密解密,差點要了命

下面是c des3加密解密 public class des3 catch cryptographicexception e e.message return null des3 cbc模式解密 金鑰 iv 密文的byte陣列 明文的byte陣列 public static byte des3dec...

10 個你需要了解的 Linux 網路和監控命令

我下面列出來的10個基礎的每個linux使用者都應該知道的網路和監控命令。網路和監控命令類似於這些 hostname,ping,ifconfig,iwconfig,netstat,nslookup,traceroute,finger,telnet,ethtool 用於檢視linux伺服器ip位址,管...