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...