Mysql索引和查詢優化

2021-09-25 12:57:28 字數 505 閱讀 9060

索引基數:

基數是資料列所包含的不同值的數量。例如,某個資料列包含值1、3、7、4、7、3,那麼它的基數就是4

索引的基數相對於資料表行數較高(也就是說,列中包含很多不同的值,重複的值很少)的時候,它的工作效果最好。如果某資料列含有很多不同的年齡,索引會很快地分辨資料行。如果某個資料列用於記錄性別(只有"m"和"f"兩種值),那麼索引的用處就不大。如果值出現的機率幾乎相等,那麼無論搜尋哪個值都可能得到一半的資料行。在這些情況下,最好根本不要使用索引,因為查詢優化器發現某個值出現在表的資料行中的百分比很高的時候,它一般會忽略索引,進行全表掃瞄。慣用的百分比界線是"30%"。(匹配的資料量超過一定限制的時候查詢器會放棄使用索引。盡量不使用會導致索引失效的條件,比如in,用exists子查詢代替,或者in的條件少時可以用union all來代替)。

索引失效的原因

索引的建立

查詢優化

MySQL 效能優化 索引和查詢優化

外來鍵索引 類別只有0和1就不要建索引了,沒有意義,對效能沒有提公升,還影響寫入效能 用模糊其實是可以走字首索引 inner join select fid from fentrust limit 4100000,10 a on a.fid e.fid select famount from fen...

MySQL 索引與查詢優化

本文介紹一些優化 mysql 索引設計和查詢的建議。在進行優化工作前,請務必了解mysql explain命令 檢視執行計畫 索引在邏輯上是指從索引列 關鍵字 到資料的對映,通過索引可以快速的由關鍵字查詢到資料記錄。順序查詢複雜度為o n 樹狀索引查詢複雜度為o logn 雜湊索引為o 1 mysq...

MySQL查詢優化之索引

mysql查詢優化之索引 什麼是索引 索引簡單來說就類似字典,想想我們小時候在中華字典怎麼查某個字。索引的作用就是快速找出在某個列中有一特定值的行。例如 有一張user表,其中有200萬條記錄,記錄著200萬個人的資訊。有乙個phone的字段記錄每個人的 號碼,現在想要查詢出 號碼為 x的人的資訊。...