最近工作使用php操作mysql時遇到一個bug 事務控制居然失效了,出現異常居然沒有回滾資料.
後面經過別人提示是mysql儲存引擎的原因:
mysql的儲存引擎包括:myisam、innodb、bdb、memory、merge、example、ndbcluster、archive、csv、blackhole、federated等,其中innodb和bdb提供事務安全表,其他儲存引擎都是非事務安全表。
最常使用的2種儲存引擎:
1.myisam是mysql的預設儲存引擎,當create建立新表時,未指定新表的儲存引擎時,預設使用myisam。每個myisam在磁碟上儲存成三個檔案。檔名都和表名相同,副檔名分別是.frm(儲存表定義)、.myd(mydata,儲存資料)、.myi(myindex,儲存索引)。資料檔案和索引檔案可以放置在不同的目錄,平均分佈io,獲得更快的速度。
2.innodb儲存引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比myisam的儲存引擎,innodb寫的處理效率差一些並且會佔用更多的磁碟空間以保留資料和索引。
檢視系統支援的引擎:
show engines;
檢視指定表的引擎:
show create table `table_name`;
修改表的儲存引擎:
alter table `table_name` type=innodb;
其中有一張表的引擎使用的是myisam,將其修改為innodb引擎 mysql 儲存引擎 mysql 儲存引擎
什麼是mysql資料庫 通常意義上,資料庫也就是資料的集合,具體到計算機上資料庫可以是儲存器上一些檔案的集合或者一些記憶體資料的集合。我們通常說的mysql資料庫,sql server資料庫等等其實是資料庫管理系統,它們可以儲存資料,並提供查詢和更新資料庫中的資料的功能等等。根據資料庫如何儲存資料和...
MySQL儲存引擎
mysql常用的儲存引擎為myisam innodb memory merge,其中innodb提供事務安全表,其他儲存引擎都是非事務安全表。myisam是mysql的預設儲存引擎。myisam不支援事務 也不支援外來鍵,但其訪問速度快,對事務完整性沒有要求。innodb儲存引擎提供了具有提交 回滾...
MySQL儲存引擎
from 是處理不同型別的表的sql操作的mysql部件,也被稱為表型別。mysql支援多種的儲存引擎,比如最新的mysql 5.6就支援innodb myisam memory csv archive blackhole merge federated example等9種儲存引擎 不同儲存引擎的...