1/mysql 的邏輯分層
mysql邏輯分層.png
2/引擎層:
innodb : 默認引擎 事務優(yōu)先 適合高并發(fā) 行鎖
myisam : 性能優(yōu)先 表鎖
查詢語句:show engines
mysql原理.png
3/sql 解析過程
sql解析過程.png
4/索引圖解 索引默認是B樹結構
索引圖解.png
三層B樹示意圖
三層B樹示意圖.png
5/索引
優(yōu)勢:1/降低io使用率提高查詢效率
2/降低CPU使用率(order by B樹索引本身已經(jīng)排好序了)
弊端:1/索引本身很大
2/不適用情況:數(shù)據(jù)量小 經(jīng)常更新的數(shù)據(jù) 很少使用的數(shù)據(jù)
3/將降低增刪改的效率
索引分類:
單值索引:單列 一個表可以有多個單列索引
唯一索引:不能重復 比如id 可以為null
主鍵索引:不能重復 比如id 不可以為null
復合索引:多個列夠成的索引
創(chuàng)建查詢刪除索引:
創(chuàng)建索引語句.png
查詢與刪除索引.png
6/sql優(yōu)化
sql 前加 explain
explain各個字段解釋.png
id: 編號
id相同:從上到下順序執(zhí)行 減少笛卡爾積中間數(shù)值
id不同:先執(zhí)行由大到小執(zhí)行
id有相同有不同 大-->小 形同的 上-->下順序執(zhí)行
數(shù)據(jù)少的表優(yōu)先查詢.png
select_type:查詢類型
select_type解釋.png
type:索引類型
type解釋.png
索引類型2.png
type3.png
type4.png
索引2.png
explain.png