標籤:結構 執行 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儲存引擎