MySql索引的一些資料

2021-10-08 04:17:26 字數 714 閱讀 4970

建立索引就是對資料進行排序,排序就是比較大小,b+樹其實就是幫助我們排序的一種資料結構。ps mysql 8.0 才支援索引降序排序

where條件能否利用索引本質上就是看條件能不能和某個b+樹索引進行比較大小。

最左字首原則:本質上就是對由多個字段聯合組成的復合字段進行大小比較,類似字串比較大小,只有給定了最左側的字段,才能去比較後續的字段。

全表掃瞄:在innodb中,表中的所有主鍵索引都是在葉子節點中,所以全表掃瞄就是掃瞄主鍵索引的葉子節點。

覆蓋索引:對於某個sql在執行時,如果發現所要查詢的資料在某乙個索引上也存在時(除開主鍵索引),那麼就可以直接利用這個索引就行查詢獲取資料,,不需要回表插尋,

索引條件:當某些條件因為不符合最左側字首原則,無法參與索引的執行時,在mysql5.7之前,該條件會在索引資料回表後在mysql server層執行然後過濾資料,而在mysql5.7之後,該條件會在執行索引後,回表前就執行過濾動作,相當於該條件的執行下沉了,也可叫索引條件下推。

在mysql中,數字與字串進行運算時,統一會將字串轉換為數字,非數字字元會統一轉化為0.

為什麼說乙個表超過2000多萬條資料以上的表就是大表?

為什麼使用mysql的limit 分頁時,頁數越靠後執行越慢,怎麼樣優化?

在建立時索引時,需要考慮哪些因素,在選擇欄位時需要考慮哪些因素?

索引與mysql的鎖有關係麼?

查詢優化器是如何優化sql和選擇索引的?

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效率高,多用於大文字欄位的檢索。還有乙個主鍵索引,預設建表指定了主鍵就自動建立...

mysql索引的一些總結

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