Mysql學習筆記整理之索引

2022-09-01 17:33:15 字數 779 閱讀 9021

索引是乙個分散儲存的資料結構(檢索)對資料庫表中一列或多列的值進行排序

索引能極大的減少儲存引擎需要掃瞄的資料量

索引可以把隨機io變成順序io

索引可以幫助我們進行分組,排序操作時,避免使用臨時表

資料庫錶行中資料的物理順序與鍵值的邏輯(索引)順序相同

輔助索引末尾指向主鍵索引,然後通過主鍵索引找值

如果innodb沒有建索引,缺省會建立乙個隱式主鍵索引 6bit

只要是索引是連續的,那麼資料在儲存介質上的儲存位置也是連續的

例如建立的索引是    [name,phone]

經常用的列優先 [最左匹配原則

]選擇性高的優先 [離散度高原則

]寬度小的列優先 [最少空間原則

]count(distinct column):count(column)

比例越大離散性越好,離散性越好選擇性越好

對索引中關鍵字進行計算,一定是從左往右一次進行,且不可跳過

如果查詢列克通過索引節點中的關鍵字直接返回,可減少資料庫io,將隨機

io變為順

序io,提高查詢

索引列的資料長度能少則少。

索引一定不是越多越好,越全越好,一定建合適的,字段不要太大, 比如phonenum是11位即可

建索引,不允許該字段為空

匹配到字首可用到索引like 999%

where條件中not in和 <>無法使用索引

匹配範圍值,order by 也可以用到索引

多用指定列查詢,只返回自己想要的資料列,少用select *

MYSQL學習筆記之索引

首先先看一下索引這個詞在詞典中的定義 指將文獻中具有 檢索意義 的事項 可以是人名 地名 詞語 概念 或其他事項 按照一定方式 有序編排起來,以供 檢索的工具書。從上面的標紅的關鍵字來看索引有兩個特點 1 索引是供使用者搜尋時所用的工具。2 索引是有序的 在mysql中索引是儲存引擎快速找到記錄的一...

mysql 整理索引 Mysql索引整理

1 mysql基本單位是頁,大小為16kb 16384 1024 頁是為了增加查詢效率,減少io的互動 區域性性原理 2 頁與頁之間是雙向鍊錶,插入的時候會根據主鍵id進行排序 單葉資料結構.jpg 3 在頁上有乙個頁目錄,相當於把資料進行分組,存放的是當前組最小的主鍵id,指標並且指向對應的資料 ...

MYSQL學習筆記之選錯索引

優化器的目的是選擇索引。他會根據自己內部的判斷,從而選擇乙個最優的執行方案。而判斷是乙個因素就是掃瞄行數,越少的掃瞄行數,就說明訪問磁碟的資料次數越少,消耗的cpu資源也就越少。1.掃瞄行數如何判斷 mysql開始執行之前,並不能知道,滿足這個條件的記錄有多少,而只能採用統計的方法,進行預估。這個統...