您好,登錄后才能下訂單哦!
MySQL數據庫存儲引擎
MySQL數據庫是一種關系型數據庫,數據時存放在數據庫中的一張一張的表中的,各個表之間或有關聯,表中的每行相關,每列是不相關。這是關系型數據庫的基本存儲方式。
MySQL存儲引擎是為了在各種不同的條件下對數據存放的可靠性、關聯性、讀寫等方面做出的一個可供選擇的存儲模式。
當前使用較多的MySQL存儲引擎主要有以下幾個,MyISAM,InnoDB,BdB,Memory等,這些存儲引擎主要在以下幾個方面有所區分,鎖定水平、處理方式、存儲方式和索引技巧方面有所不同。
mysql下顯示存儲引擎和更改存儲引擎的方法都很簡單
show engines;顯示所支持的
alter table tablename engine = whichengine;修改存儲引擎
create table tablename (id int,name char(15)) engine = whichengine;新建時更改
常見存儲引擎的區別:
1>MyISAM:它的前身是ISAM,它是ISAM的擴展,支持ISAM所不支持的索引和字段管理功能,它的特點是表鎖定,可以處理高并發的讀寫操作,是默認的存儲引擎。
2>InnoDB和BdB:這兩個存儲引擎是唯一可支持事務處理的存儲引擎,區別是InnoDB是行鎖定的而BDB是頁鎖定的。
3>Memory:聽名字就知道這是一個用內存來暫存數據的存儲模式,讀寫效率自然不用說,但在數據庫關閉的時候數據會全部丟失。
三種鎖定水平:
1>表鎖定:為了防止多個用戶同時更新一張表,表鎖定在數據更新的時候它會鎖定整個表,所以在多用戶訪問時會造成很大延時,所以并發性差,但開銷小。
2>行鎖定:因為表鎖定的低并發,所以產生了行鎖定,在訪問數據庫時對數據庫的每一行進行鎖定,可以使得訪問不同行的用戶同時訪問同一張表,但它的開銷大,并且還會造成死鎖。(對于為什么會產生死鎖的分析這里給出一個博客鏈接說的很盡http://www.cnblogs.com/bamboos/p/3532150.html)
3>頁鎖定:在行鎖定和表鎖定的中間生存著的便是頁鎖定了,它是折中方式。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。