您好,登錄后才能下訂單哦!
mysql的邏輯架構說起:
最上面一層是客戶端的連接服務,主要完成客戶端的連接處理,授權認證。在該層有一個線程池,每一個連接從線程池中獲取線程,省去了創建和銷毀線程的開銷。
中間這一層可以完成查詢解析,分析,優化,緩存。存儲過程,觸發器,視圖也是在這一層。
最下面一層是存儲引擎,負責mysql中數據的存儲和提取。
和其它數據庫有所不同,mysql的存儲引擎是可插拔的,可以根據不同的場合使用不同的存儲引擎。
存儲引擎:
存儲引擎就是存儲數據,更新查詢數據,建立索引等等的技術實現方式,mysql5.0支持的存儲引擎包括: InnoDB 、MyISAM 、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中使用最多的是InnoDB 和MyISAM,mysql5.5之后InnoDB是默認的存儲引擎我們重點討論這兩個存儲引擎
查看mysql默認存儲引擎的命令:
show variables like '%storage_engine%'
InnoDB存儲引擎和MyISAM的對比圖:
InnoDB存儲引擎和MyISAM存儲引擎的最大區別有以下三點:
1. InnoDB支持事物,MyISAM不支持
2. InnoDB支持外鍵,MyISAM不支持
3. 批量插入的速度MyISAM要高于InnoDB
基于以上特點來看看在實際使用中應該如何選擇存儲引擎:
InnoDB存儲引擎:因為InnoDB存儲引擎支持事物,所以對于要求事物完整性的場合需要選擇InnoDB,比如數據操作除了插入和查詢以外還包含有很多更新刪除操作,像財務系統等對數據準確性要求較高的系統。
MyISAM存儲引擎:如果系統是以讀操作和插入操作為主,只有很少的更新刪除操作,并且對事物的之處沒有要求那么可以選擇這個存儲引擎。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。