mysql儲存引擎
注意:專案中一般用innodb引擎.(1),mysql中innodb與myisam的區別
(1):innodb支援事物,myisam不支援事物
(2):innodb支援行級鎖,myisam支援表級鎖
(3):innodb支援快照資料(mvcc),myisam不支援
(4):innodb支援外來鍵,myisam不支援
(5):innodb不支援全文索引,myisam支援
innodb使用的是行級鎖:只有在增刪改查時匹配的條件字段帶有索引時,innodb才會使用行級鎖.(行級鎖:要為匹配條件欄位加索引)
innodb使用的是表級鎖:如果增刪改查時匹配的條件欄位不帶有索引時,innodb使用的將是表級鎖.(表級鎖:資料庫全表查詢,需要將整張表加鎖,保證查詢匹配的正確性)
觸發讀鎖:就是用select命令時觸發讀鎖.
觸發寫鎖:就是在你使用update,delete,insert時觸發寫鎖,並且使用rollback或commit後解除本次鎖定
更好的區分:讀寫鎖和表級鎖行級鎖. 將讀寫鎖叫做許可權鎖(決定了加鎖後使用者有哪些操作許可權),將表級鎖行級鎖叫做物件鎖(決定將鎖加在某一行還是整張表)
mvcc多版本併發控制,也可稱之為一致性非鎖定讀;它通過行的多版本控制方式來讀取當前執行時間資料庫中的行資料. 實質上使用的是快照資料.
為什麼要使用mvcc?
消除鎖的開銷. (如果要保證資料的一致性,最簡單的方式就是對運算元據進行加鎖,但是加鎖不可避免的會有鎖開銷. 所以使用mvcc能避免進行加鎖的方式並提高併發.)
第一正規化
字段不能再分,確保每列保持原子性.
第二正規化
滿足第一正規化的基礎上,不能有部分依賴.
消除符合組合主鍵(a,b)就可以避免部分依賴. 增加單列關鍵字.
第三正規化
滿足第二正規化的基礎上,不能有傳遞依賴.
某個字段依賴於主鍵,而有其他字段依賴於該欄位. 這就是傳遞依賴.
將乙個實體資訊的資料放在乙個表內實現
mysql儲存引擎 mysql儲存引擎簡介
精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...
mysql個儲存引擎 MySQL儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...
mysql儲存引擎模式 mysql儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...