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 檔案即可
本文轉自 tianshuai369 51CTO部落格,原文連結:http://blog.51cto.com/songqinglong/1683078