mysql一共分為四層,分別是連線層,業務層,引擎層,儲存層。
1.mysql會對命令進行處理,查詢快取(在mysql的my.ini檔案裡開啟),
2.如果沒有進入命令解析器,
3.mysql的sql語句解析順序為
from,
left join
where
,group by
,select,
order by
,limit
4.根據不同的命令分發到不同的位置上,如查詢和增刪改是不一樣的。
查詢優化器:組合索引順序顛倒,查詢優化器會自動調整,匹配聯合索引順序
5.生成mysql自己執行的sql語句
6.查詢
7.返回
mysql有十餘種儲存引擎,我們常用的是innodb和myisam,二者的區別是:5.5之前mysql預設儲存引擎為myisam
myisam:偏向於讀
1.不支援主外來鍵
2.不支援事務
3.表鎖
4.只快取索引不快取真真實資料
5.表空間小
6.關注點==
=》效能
innodb:讀寫
1.支援主外來鍵
2.支援事務
3.行鎖
4.快取索引和資料
5.表空間大
6.關注點 ==
=》事務
mysql的兩種引擎 mysql的兩種儲存引擎
背景 最近在使用spring data jpa操作mysql,在使用jpa的自動建表功能之後,處理多對多關係 manytomany的時候,spring data jpa會給中間表的兩個欄位都加上外來鍵引用。當前使用的版本預設的資料庫儲存引擎為myisam。這種儲存引擎是為資料庫查詢效能而生的,不支援...
MySQL兩種儲存引擎區別
innodb引擎 innodb引擎提供了對資料庫acid事務的支援,並且實現了sql標準的四種隔離級別。該引擎還提供了行級鎖和外來鍵約束,他設計的目的是處理大容量資料庫系統,它本身就是基於mysql的完整的資料庫系統,mysql執行時innodb會在記憶體中建立緩衝池,用來緩衝資料和索引。innod...
MySQL 常見的兩種儲存引擎
mysql兩種常見的儲存引擎有 myisam 和 innodb,兩者區別如下 1 count運算 myisam 有快取表的 meta data 元資料,元資料報括行數等,因此其做 count 查詢時不需要消耗多少資源。而 innodb 就沒有這個快取。2 事務和崩潰後的安全恢復 myisam強調的是...