標籤:mysql引擎
MySQL支援三個引擎:ISAM、MyISAM和HEAP,根據需求不同來選擇不同的引擎
資料庫的引擎到決於 MySQL 在安裝的時候是如何被編譯的,要添加一個新的引擎,就必須重新編譯
--with-plugins=partition,innobase
ISAM:
讀取操作速度很快,而且不佔用大量的記憶體和儲存資源
不支援事物處理
不能夠容錯
若硬碟崩潰,將無法恢複資料
MyISAM:(預設表類型)
MyISAM是MySQL的ISAM擴充格式和預設的資料庫引擎,有如下擴充:
1)、二進位層次的可移植性。
2)、NULL列索引。
3)、對變長行比ISAM表有更少的片段。
4)、支援大檔案。
5)、更好的索引壓縮。
6)、更好的鍵碼統計分布。
7)、更好和更快的auto_increment處理。
MyISAM適合:(1)做很多count 的計算;(2)插入不頻繁,查詢非常頻繁;(3)沒有事務
InnoDB Berkley DB(BDB):(支援事物安全)
支援外鍵
支援行鎖
支援事務
採用雙授權:GPL和 商業授權
適用於有大量的 update 和 insert 操作,高並發 QPS(每秒查詢率) 較高 的環境
查看資料庫引擎:
查看現已提供儲存引擎: mysql> show engines;
查看當前預設儲存引擎: mysql> show variables like ‘%storage_engine%‘;
查看某個表用了什麼引擎(在顯示結果裡,參數 engine 後面的參數):
mysql> show create table 表名;
如: mysql> show create test_db;
修改 MySQL 資料表空間引擎:
設定 InnoDB 為預設引擎:
在設定檔my.cnf 中的[mysqld] 下面加入 default-storage-engine=INNODB
修改表引擎:
alter table test_db engine=myisam;
alter table test_db engine=innodb;
注意:如果添加innodb 引擎報錯,需刪除 /mysql/data 目錄下的 ib_logfile0,ib_logfile1 檔案即可
MySQL引擎講解