新安裝的Mysql5.5數據庫使用mybatis提示插入數據成功而且主鍵已經自增,可是數據表中沒有數

    通過查詢是由於在4.0版本以後新推出的數據引擎InnoDB與MyIASM之間的差異,改成MyIASM便可具體介紹參照。 插入數據的時候發現一切正常, 但數據並未插入數據庫,甚是奇怪,後來發如今數據庫中主鍵一直在增長,也就是說數據已經提交到數據庫,主鍵自增之後並未插入。後來將表結構從InnoDB改成了MyIASM就能夠了。查了一下Mysql的7種表結構,描述以下: sql

DBD Berkeley DB(DBD)表是支持事務處理的表,由Sleepycat軟件公司開發。它提供MySQL用戶期待已久的功能事務控制。事務控制在任何數據庫系統中都是一個極有價值的功能,由於它們確保一組命令能成功地執行或回滾。 HEAP HEAP表是MySQL中存取數據最快的表。這是由於他們使用存儲在動態內存中的一個散列索引,不過若是MySQL或服務器崩潰,這些內存數據將會丟失。 ISAM ISAM表是早期MySQL版本的缺省表類型,直到MyIASM開發出來。建議不要再使用它。 MERGE MERGE是一個有趣的新類型,在3.23.25以後出現。一個MERGE表其實是又一個MyISAM表的集合,合併而成的一個表,主要是爲了效率的考慮,由於這樣不只僅能夠提升速度、搜索效率、修復效率並且還節省了磁盤空間。 MyIASM MyIASM基於了IASM代碼,應該能夠說是IASM的衍生品,不過增長了很多有用的擴展。它是MySQL的默認數據表類型,基於了傳統的ISAM類型,ISAM是Indexed Sequential Access Method(有索引的順序訪問方法)的縮寫,通常來講,它是存儲記錄和文件的標準方法。與其餘存儲引擎比較,MyISAM具備檢查和修復表格的大多數工具。ISAM表格能夠被壓縮,並且它們支持全文搜索,不過它們是事務不安全的,並且也不支持外鍵。若是事務回滾將會形成不徹底回滾,從而不具有原子性。因此假如忽略事務以及訪問併發性的話,而且須要執行大量的SELECT檢索語句的話,MyISAM將是最好的選擇。 InnoDB InnoDB是MySQL 4.0以後推出的一種比較新的數據表類型,這種類型是事務安全的。它與BDB類型具備相同的特性,它們還支持外鍵。InnoDB表格速度很快具備比BDB還豐富的特性,所以若是須要一個事務安全的存儲引擎,建議使用它。若是你的數據執行大量的INSERT或UPDATE,出於性能方面的考慮,一樣應該使用InnoDB表。對於支持事務的InnoDB類型的表來講,影響速度的主要緣由是AUTOCOMMIT默認設置是打開的,並且程序沒有顯式調用BEGIN 開始事務,致使每插入一條都自動提交,嚴重影響了速度。能夠在執行sql前調用begin,多條sql造成一個事物(即便autocommit打開也能夠),將大大提升性能。 Gemeni Gemeni表,據據說也是在MySQL 4.0以後推出的,不過截至當前,不多有針對它的介紹,一樣應用也就更少了,咱們暫時不做介紹。 經過描述發現InnoDB是事物安全的,而MyIASM是非事物安全的。InnonDB不會自動提交事物,這樣的話就須要在進行插入後對事物進行手動提交。
相關文章
相關標籤/搜索