mysql索引的一些總結

2022-08-21 08:18:13 字數 762 閱讀 6949

執行成本(執行時間)

1. io 成本: 即從磁碟把資料載入到記憶體的成本,預設情況下,讀取資料頁的 io 成本是 1,mysql 是以頁的形式讀取資料的,即當用到某個資料時,並不會只讀取這個資料,而會把這個資料相鄰的資料也一起讀到記憶體中,這就是有名的程式區域性性原理,所以 mysql 每次會讀取一整頁,一頁的成本就是 1。所以 io 的成本主要和頁的大小有關

2. cpu成本:進行一些其他條件的過濾以及排序等,這個成本跟返回的行數有關係

索引使用不到的情況

1. 資料表的資料量比較小,不如全表掃瞄

2. 沒有建立索引

3. 索引使用不規範,比較常見的復合索引的左匹配規則,不等於符號的使用,索引列的隱式轉化(字串型別不加單引號),索引列做計算

4. mysql優化器執行計畫的選擇錯誤,這個選擇的標準是估值,會有一定的誤差性(or操作有時候就會造成這種問題)

不適合索引的情況

1. 唯一性較差的字段

2. 更新頻繁的字段

3. where,order.group後面沒有出現的字段盡量不要建立索引,減少索引的數量

一些索引優化

1. 對於索引欄位較多的表,刪除一些不必要額索引或者使用聯合索引合併一些索引字段

2. 使用覆蓋索引,減少一次回表

3. 使用explain, optimizer trace檢視sql的執行計畫,避免一些因為mysql自身優化器的原因沒有使用到索引,這是可以強制使用索引

4. 索引使用不到的情況的檢查

mysql 索引學習的一些總結

一 使用索引的注意事項 1 索引不會包含有null值的列 資料庫設計時不要讓字段的預設值為null 2 使用短索引 對串列進行索引,如果可能應該指定乙個字首長度,前10個或20個字元內 使用短索引可以大量節省磁碟空間,也有可能會使查詢更快 較小的索引涉及的磁碟i o較少,較短的值比較起來更快 對於較...

mysql索引技巧 MySql 索引的一些技巧

一 多表子從查詢 多表查詢時,子查詢可能會出現觸發不了索引的情況 select from test 1 where id in select id from test publish where id in 38,69 上面語句,test 1和test public都where了主鍵id,常理來說這...

mysql索引的一些概念

在mysql中,建立索引的時候一般可選的索引型別有 普通索引 normal 最基本的索引,沒有任何限制 唯一索引 unique 索引列的值必須唯一,但允許有空值,全文索引 fulltext 效果類似like,但是比like效率高,多用於大文字欄位的檢索。還有乙個主鍵索引,預設建表指定了主鍵就自動建立...