mysql 選擇索引 mysql選擇索引

2021-10-20 22:37:15 字數 637 閱讀 4498

1、盡量為用來搜尋、分類或分組的資料列編制索引,不要為作為輸出顯示的資料列編制索引。

最適合有索引的資料列是那些在where子句中資料列,在聯結子句**現的資料列,或者是在group by 、order by子句**現的資料列。select 後的資料列最好不要用索引。

2、綜合考慮各資料列的維度。

資料列的維度等於它所容納的非重複值的個數。比如說,如果某個資料列的值是1,2,3,3,4。那麼它的維度就是3.維度越高,越適合做索引。原因不言而喻。

3、對短小的值進行索引。

4、為字串的字首編索引。

5、充分利用最左邊的字首。

當你建立了乙個n個資料列的符合索引時,因為索引中最左邊的資料列集合能夠使用的n個索引。乙個復合索引在工作時就相當於n個索引,因為索引最左邊的資料列集合能夠用於匹配資料行。這樣的乙個集合就相當於「最左邊字首」。mysql不能使用沒有包含最左邊字首的搜尋的索引。

6、適可而止,不要建立過多的索引。

索引會占用額外的磁碟空間,會影響寫的效能。當你索引過多時,mysql甚至無法選擇最好的索引來使用。

7、讓索引的型別與你打算進行的比較操作的型別保持匹配。(使用b樹索引的關鍵字:using btree).

8、利用慢查詢日誌找出效能低劣的查詢。(慢查詢日誌檔案是乙個文字檔案。)

mysql索引的選擇 Mysql索引選擇邏輯

索引選擇邏輯 優化器選擇索引的目的,是找到乙個最優的執行方案,並用最小的代價去執行語句。在資料庫裡面,掃瞄行數是影響執行代價的因素之一。掃瞄的行數越少,意味著訪問磁碟資料的次數越少,消耗的 cpu 資源越少 掃瞄行數是怎麼判斷的?mysql 在真正開始執行語句之前,並不能精確地知道滿足這個條件的記錄...

mysql索引的選擇 MySQL索引的選擇

hash索引和b 樹索引 那為什麼不使用其他的資料結構作為索引?hash索引 雜湊表的特點就是可以快速的精確查詢,但是不支援範圍查詢。如果做成了索引,那速度也是很慢的,要全部掃瞄。平衡二叉樹 1 索引也不只是在記憶體裡面儲存的,還是要落盤持久化的,如果資料多了,樹高會很高,查詢的成本就會隨著樹高的增...

mysql索引,引擎選擇

foreign key 外來鍵 set null 在父表上update delete記錄時,將子表上匹配記錄的列設為null 要注意子表的外來鍵列不能為not null no action 如果子表中有匹配的記錄,則不允許對父表對應候選鍵進行update delete操作 restrict 同no ...