MySQL儲存引擎

來源:互聯網
上載者:User

標籤:結構   執行   int   nes   管理   char   def   pre   需要   

MySQL儲存引擎
作為可插拔式的組件提供:
-負責為資料庫執行實際的資料I/O操作,不同的儲存引擎,其儲存資料的方式也不同。
-使用者通過串連訪問MySQL資料庫,根據實際需要選用何種儲存引擎,避免大的編碼更改。

預設的儲存引擎:
-MySQL 5.0/5.1 ---> MyISAM
-MySQL 5.5/5.6 ---> InnoDB

列出可用的儲存引擎類型:
格式:SHOW ENGINES;
或SHOW ENGINES\G

修改表的儲存引擎:
建表時,使用預設儲存引擎。
-SHOW CREATE TABLE xxx\G; 可查看

例:mysql>create table ku.abc(>id int(4),>name char(5)>) engine=innodb;mysql>show create table ku.abc\G;

更改現有表的儲存引擎:
-使用ALTER TABLE 改變引擎設定。
mysql>alter table ku.abc engine=myisam;
msyql>show create table ku.abc\G;

設定預設儲存引擎:
修改設定檔/etc/my.cnf
vim /etc/my.cnf
[mysqld]
....
default-storage-engine=InnoDB

service mysql restart

儲存引擎的特點
MyISAM儲存引擎的主要熱點:
1.支援表級鎖定,不支援行級鎖定。
2.不支援事務
3.不享資料表空間
4.多用在查詢、插入操作較多的表。

相關的表檔案:
表.MYI 存放索引資訊
表.MYD 存放資料
表.frm 存放表結構

InnoDB儲存引擎主要特點:
1.支援表級/行級鎖定
2.支援事務、交易回復、支援外鍵
3.共用資料表空間

注釋:
鎖的作用:解決並發存取違規問題。
事務: 一次資料訪問從開始到結束的過程 稱為事務
交易回復: 一次資料訪問 任意一步執行失敗,恢複所有操作。
事務的特性: 一致性 原子性 隔離性
交易記錄檔:記錄對innodb儲存引擎的表執行過的操作。

相關的表檔案:
表.frm 存放表結構
表.ibd 存放索引資訊+資料
ibdsta1
ib_logfile0 、ib_logfile1

接收寫操作多的表適合使用innodb儲存引擎。
接收讀操作多的表適合使用myisam儲存引擎。

鎖粒度:
1.表級鎖:一次直接對整張表進行加鎖。
2.行級鎖:只鎖定某一行
3.頁級鎖:對整個頁面(MySQL管理資料的基本存放裝置單位)進行加鎖。

鎖類型:
1.讀鎖(共用鎖定):支援並發讀。
2.寫鎖(互斥鎖、排它鎖):是獨佔鎖,上鎖期間其它線程不能讀表或寫表。

查看當前的鎖狀態:
-檢查Table_lock開頭的變數,%作萬用字元。
mysql>SHOW STATUS LIKE "Table_lock%"

MySQL儲存引擎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.