第十八集 mysql 索引優化

2021-06-21 10:19:29 字數 1327 閱讀 5322

1、索引是mysql 中最重要的優化方式,它能解決mysql大部分的效能問題。

2、索引的分類

myisam引警中索引和資料檔案是分開儲存的

innodb引擎中索引和資料檔案是存在同乙個檔案中的,但可以分成多個檔案儲存。

mysql 暫不支援函式索引,但可以對乙個欄位的部分位進行索引。

3、mysql 如使用索引何

一、使用索引

1)、使用索引:      對於建立的多列索引,只要查詢條件中用到最左邊的列,索引一般會被用到。

2)、使用like的查詢,後面如果是常量且只有%號不在第乙個字元,索引才可能會被使用。

3)、如果對大的文字進行搜尋,使用全文索引而不使用 like "%.....%".

4)、如果列名是索引,使用column_name is null 將使用索引。

二、存在索引但不使用索引

1)、如果mysql估計使用索引比全表掃瞄更慢,則不使用索引。例如如果列key_part1均勻分布在1到100之間,查詢時使用索引就是很好

2)、如果使用memory/heap表並且where 條件中不使用=進行索引列,那麼不會使用索引。heap表只有=條件下會使用索引。

3)、用or分割開的條件,如果or前面的條件中的列有索引,而後面的列中沒有索引,那麼涉及的索引不會被用到。

4)、如果不是索引列的第一部分,那麼在查詢中這個索引也不會被mysql採用。

5)、如果like是以%開始,那麼mysql 也不會採用這個索引。

6)、如果列型別是字串,但在查詢時把乙個數值型常量賦值給了乙個字元型的列名name,也用不到索引。

3、檢視索引使用情況 

show status like "handler _read%"

handler_read_key :代表乙個行被 索引值讀的次數。

4、分析表和檢查表

1)、檢 查乙個或者多個表是否有錯誤    check table tbl_name 

2)分析表

5、常用sql的優化

1)、大批量插入資料   

load data infile "/tmp/text.txt" into table t1(name)

這樣只是把錶資料匯出來,不包含結構

2)、大批量匯出資料

select  name from t1 outfile "/tmp/test.txt";

3)、導資料時把非唯一索引關閉會更快(cf)

alter table tbl_name disable keys

loading the data

alter table tbl_name enable keys.

注:對innodb無效。

第十八節 快取

本節將通過對 2019 11 05 mynopcommerce vs19core2.2nop4.20 不刪,014 新增一些中介軟體的定義 程式進行重構,從而來實現授權功能。重構nop.web.framework.infrastructure.dependencyregistrar 類,重新定義 r...

程式設計第十八題

rpg girls今天和大家一起去遊樂場玩,終於可以坐上夢寐以求的過山車了。可是,過山車的每一排只有兩個座位,而且還有條不成文的規矩,就是每個女生必須找個個男生做partner和她同坐。但是,每個女孩都有各自的想法,舉個例子把,rabbit只願意和xhd或pqk做partner,grass只願意和l...

作業第十八周

1 請列出 nginx 常用模組的各個優缺點以及區別 ngx http auth basic module 實現基於使用者的訪問控制,使用basic機制進行使用者認證,優點 使用登陸對話方塊的方式實現使用者認證,缺點 認證檔案依賴httpd tools軟體包。ngx http stub status...