MySQL 讀書筆記 索引(1)

2022-10-11 10:06:10 字數 1097 閱讀 9406

普通索引

主鍵索引

唯一索引

聯合索引

create table table_name [col_name data_type]

[unique] index index_name (col_name) [asc | desc]

alter table table_name add [index | unique] index_name(col_name)
alter table table_name drop index index_name
drop index index_name on table_name
連線表的數量盡量不超過3,因為每增加一張表,相當於增加一次巢狀迴圈,時間呈指數級別增加

where條件字段索引,因為where是對資料的過濾,如果資料量很大的時候,沒有過濾的資料是非常大的

對用於連線的字段建立索引,並且該字段在兩張表中的型別必須一致,因為當型別不一致的時候,系統會隱式呼叫函式對欄位進行轉換,一旦使用函式,索引就會失效

當字串很長時,它需要占用比較大的儲存空間,當為其建立索引的時候,需要記錄完整的字串,更費時,索引占用的空間越大,而且在做比較時耗時更多

可以通過擷取字串一部分內容建立索引,叫做字首索引。這樣在檢索時,雖然不能精確定位到記錄,但是可以定位到記錄的字首位置,然後再回表查詢。這樣既節約了空間,又減少了字串比較的時間,還大體能解決排序的問題

如何選擇擷取的長度呢,長了達不到節約空間的目的,短了資料重複性太高,資料的選擇性會降低

select count(distinct left(address_name, num)) / count(*) from table_name;
通過擷取不同的長度,比較它們之間的選擇度,越大,代表選擇度越高

在實際中,索引的數量不是越多越好,建議每張表的索引不超過6個

讀書筆記 Mysql 索引

mysql有不同的儲存引擎型別,儲存引擎使用不同的方式將索引存放在磁碟上。不同的存放方式對效能有不同的影響。myisam按照行儲存的物理位置來尋找資料,innodb按照主鍵值引用行。mysql 索引的型別 b tree索引 b tree索引的適用場景 匹配全名,匹配最左字首,匹配列字首,精確匹配一部...

讀書筆記 1

從我第一次看到windows就對它那花花綠綠的外表所吸引,大學兩年過來,時間又讓我從另乙個角度重新認識的了這些美麗的。本學期開始圖形程式設計的學習,探索windows圖形系統,並對gdi api,directdraw api進行學習。之所以寫部落格,第 一 是想勉勵自己不斷學習,讓大家監督 第 二 ...

讀書筆記1

netstat p525 網路資訊服務是通過本地查詢,還是要連線到遠端資料庫 p527 網路配置檔案?服務資訊函式?linux下如何組網 p527 如何設定計算機的主機名 p528 套接字 第15章 套接字 套接字 p513,523 what 套接字 一種程序間通訊機制 不僅可以本地程序通訊,也可以...