mysql配置檔案
1.二進位制檔案log-bin 【主從複製】
2.錯誤日誌log-error 【預設是關閉的,記錄嚴重的警告和錯誤資訊】
3.查詢日誌log 【預設關閉,記錄查詢的sql,開啟回影響mysql效能,因為記錄日誌需要時間】
4.資料檔案 【.frm (存放表結構) .myd (存放表資料) .myi (存放表索引 )】
5.配置檔案 【window(my.ini)linux (/etc/my.cnf)】
mysql儲存引擎
innodb和myisam (常用)
mysql索引
單值索引
唯一索引
復合索引
乙個索引只包含單個列,乙個表可以有多個單值索引
索引列的值是唯一的,單可以為空值
乙個索引包含多個列
mysql索引結構
btree索引
雜湊索引
全文索引
r-tree索引
哪些情況需要建立索引
主鍵自動建立唯一索引
頻繁作為查詢條件的字段應該建立索引
查詢中與其它表關聯的外來鍵需要建立索引
頻繁更新的字段不適合建立索引【因為更新的不只是資料,還更新索引,加重了io負擔】
where條件裡用不到的字段不建立索引
查詢中排序的字段需要建立索引
查詢中統計或分組需建立索引
哪些情況不需要建立索引
mysql常見瓶頸
explain
1.explain是什麼?
答:使用explain可以模擬並優化執行sql語句順序,從而知道mysql是怎麼執行sql語句的,分析sql語句,從而達到優化sql語句
2.能幹嘛?
怎麼用?
答:explain+sql語句
expalin查詢包含的資訊id
select_type
table
type
possible_keys
keykey_len
refrows
extra
select查詢的序列號,也就是sql語句執行順序 。id相同,則順序從上到下執行。否則id越大優先順序越高
查詢的型別,主要是區別查詢是子查詢,聯合查詢,普通查詢等
查詢時有那些表
顯示查詢型別
顯示表有哪些索引可用,但是不一定會用到這些索引
實際使用的索引,如果為null則沒有使用索引
表示索引中使用的位元組數
顯示索引的哪一列被使用
顯示查詢的行數
包含了不適合在其他列顯示但十分重要的資訊
select_type
******
primary
subquery
derived
union
union result
簡單的查詢
主鍵在select或者where包含了子查詢
在from表裡包含的子查詢,mysql會遞迴的執行這些語句並放在臨時表裡
聯合查詢
從nuion表獲取的結果的select
type
system
const
eq_ref
refrange
index
all表只有一行資料,可以忽略
通過索引一次就找到了,只匹配一天資料
常見於主鍵和唯一索引掃瞄
非唯一性索引掃瞄,返回匹配某個單獨值得行
返回在給定範圍得行,如in,between等
全表掃瞄
全表掃瞄,區別於index是,index是從索引讀取的資料,all是讀的硬碟得資料
一般能達到range就可以了
extra
using filesort
using temporary
using index
using where
using join buffer
impossible where
select tables optimized
distanct
說明mysql會對資料重排序,出現這個要注意
使用臨時表儲存結果,通常出現於order by和group by
表示select語句使用了覆蓋索引,效率不錯!!!
使用了where過濾
使用了連線快取
where子句得值總是false
在沒有group by的情況下,基於索引優化min/max
優化distanct,在找到第乙個匹配的元組後不查相同的記錄
慢日誌查詢
檢視是否開啟慢日誌查詢
show variables like "%show_query_log%";【預設關閉】
開啟慢日誌
set global slow_query_log=1;
檢視當前多少時間才算慢
show variables like "long_query_time%";【預設好像是10秒】
設定慢查詢時間
set global long_query_time=3;
日誌分析工具mysqldumpslows
clrt
alar
at-t
-g表示按照什麼方式排序
訪問次數
鎖定時間
返回記錄
查詢時間
平均鎖定時間
平均返回記錄數
平均查詢時間
返回前面的多少條資料
後面搭配乙個正則匹配模式,大小寫不敏感
MySQL 基本介紹
一,mysql 與其他資料庫的簡單比較 1,功能比較 在事務支援方面,雖然 mysql 自己的儲存引擎並沒有提供,但是已經通過第三方外掛程式式儲存引擎innodb 實現了 sql 92 標準所定義的四個事務隔離級別的全部,只是在實現的過程中每一種的實現方式可能有一定的區別,這在當前商用資料庫管理系統...
mysql事務基本介紹
執行一條命令,或者多條命令,要麼全部成功,要麼全部失敗,不存在中間狀態 執行一條命令,或者多條命令,執行前後整體保持一致 比如 a有餘額100元,b有餘額100元,a給b轉賬50元,轉賬後a有餘額50元,b有餘額150元,a b前後總額分別都是200元 隔離性是指事務和事務之間操作具有隔離性,即是乙...
MySQL介紹與基本操作
前身屬於瑞典的一家公司,mysql ab 08年被sun公司收購 09年sun被oracle收購 1 開源 免費 成本低 2 效能高 移植性也好 3 體積小,便於安裝 屬於c s架構的軟體,一般來講安裝服務端 企業版社群版 5.55.6 5.78.0 方式一 計算機 右擊管理 服務 方式二 通過管理...