MySql事务无法回滚的原因_MySQL
使用MySQL时,如果发现事务无法回滚,但Hibernate、Spring、JDBC等配置又没有明显问题时,不要苦恼,先看看MySQL创建的表有没有问题,即表的类型。
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
MyIASM是IASM表的新版本,有如下扩展:
二进制层次的可移植性。
NULL列索引。
对变长行比ISAM表有更少的碎片。
支持大文件。
更好的索引压缩。
更好的键吗统计分布。
更好和更快的auto_increment处理。
以下是一些细节和具体实现的差别:
1. InnoDB不支持FULLTEXT类型的索引。
2. InnoDB中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含where条件时,两种表的操作是一样的。
3. 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4. DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5. LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”
任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。
在MySQL 5.0里面,MyISAM和InnoDB存储引擎性能差别并不是很大,针对InnoDB来说,影响性能的主要是 innodb_flush_log_at_trx_commit 这个选项,如果设置为1的话,那么每次插入数据的时候都会自动提交,导致性能急剧下降,应该是跟刷新日志有关系,设置为0效率能够看到明显提升,当然,同样你可以SQL中提交“SET AUTOCOMMIT = 0”来设置达到好的性能。另外,还听说通过设置innodb_buffer_pool_size能够提升InnoDB的性能,但是我测试发现没有特别明显的提升。
基本上我们可以考虑使用InnoDB来替代我们的MyISAM引擎了,因为InnoDB自身很多良好的特点,比如事务支持、存储过程、视图、行级锁定等等,在并发很多的情况下,相信InnoDB的表现肯定要比MyISAM强很多,当然,相应的在my.cnf中的配置也是比较关键的,良好的配置,能够有效的加速你的应用。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

無線投影螢幕為什麼會連線不成功呢?有些小夥伴反映在使用無線投影螢幕的時候,會出現連線失敗的狀況,這是怎麼回事呢?無線投影機連線失敗怎麼辦?請確認您的電腦、電視和手機是否連接在同一個WiFi網路上。投影機軟體要求設備在同一網路下才能正常使用,而快點投影螢幕也不例外。因此,請您迅速檢查您的網路設定。確定是否支援投影功能很重要。智慧型電視和手機通常都支援DLNA或AirPlay功能。如果不支援投影機功能,就無法傳屏。確認設備是否正確連接:在同一WiFi下的設備可能有多個,確保連接的是想要實現同螢幕的設備。 4、確保網路的

在區域網路內連接印表機啟動列印作業時會出現一些小狀況,例如偶爾會出現「wpsoffice無法啟動列印作業…」的問題,造成無法列印出文件等,耽誤我們的工作和學習,造成不好的影響,下面就告訴大家,怎麼解決wpsoffice無法啟動列印作業的問題?當然你可以升級軟體或是升級驅動等方案解決,但是這樣花費你好長的時間,下面我就給大家較少一種分分鐘可以搞定的方案。首先註意到wpsoffice無法啟動列印作業,導致無法進行列印。要解決這個問題,就需要逐一檢查。另外,確認印表機已開啟並連接。一般連接不正常會造

PHP500錯誤全面指南:原因、診斷與修復在PHP開發過程中,我們常會遇到HTTP狀態碼為500的錯誤。這種錯誤通常被稱為"500InternalServerError",它是指在伺服器端處理請求時發生了一些未知的錯誤。在本文中,我們將探討PHP500錯誤的常見原因、診斷方法以及修復方法,並提供具體的程式碼範例供參考。 1.500錯誤的常見原因1.

使用蘋果手機時,一些用戶可能會遇到充電速度緩慢的問題。造成這種問題的原因有很多種,可能是因為充電設備功率過低,設備故障,或是手機的USB介面出現問題,甚至是電池老化等因素導致的。蘋果手機充電很慢是什麼原因答:充電設備問題,手機硬體問題,手機系統問題。 1.用戶在使用功率比較低的充電設備時,手機的充電速度就會很慢。 2.使用第三方的劣質充電器或是充電線也會導致充電速度很慢。 3.推薦用戶使用官方的原廠充電器,或是更換正規的有認證的高功率充電器。 4.用戶的手機硬體出現問題,比如說手機的usb介面接觸不

相信不少朋友都遇過系統藍屏的問題,不過不知道win11藍屏原因是什麼,其實導致系統藍屏的原因是有很多的,我們可以依序排查進行解決。 win11藍色畫面原因:一、記憶體不足1、運行太多軟體或遊戲消耗記憶體太大的時候可能發生。 2.尤其是現在win11存在記憶體溢出的bug,所以很有可能會遇到。 3.這時候可以嘗試設定虛擬記憶體來解決,不過最好的方法還是升級記憶體條。二、CPU超頻過熱1、CPU的問題原因其實跟記憶體差不多。 2.一般會發生在使用後期、建模等軟體,或在玩大型遊戲時發生。 3.CPU的消耗過大就會出現藍屏

最近有朋友在更新系統後,遇到了win11自動關機的問題,很多情況下都會在玩遊戲的時候發生,不知道是什麼原因導致的。其實這可能是因為電腦配置不足,或是系統故障造成,以下一起來看看原因及解決方法吧。 win11自動關機什麼原因一、配置不足1、Windows11系統對於cpu和記憶體需求比Windows10高一些。 2.尤其是在運行大型遊戲等任務時,極易出現自動關機的情況。 3.使用者可以試著還原到自動關機前的使用情況,右鍵點擊開始功能表圖標,開啟「任務管理器」頁面。 4.我們在這個頁面查看CPU、記憶體、磁碟

探索HTTP狀態碼550的原因及解決方法引言:在網路通訊中,HTTP狀態碼扮演著重要的角色,用來表示伺服器處理請求的結果。其中,HTTP狀態碼550是一種相對較少見的狀態碼,通常與伺服器拒絕執行請求相關。本文將探討HTTP狀態碼550的原因,並提供解決方法。一、HTTP狀態碼的基本概念在了解HTTP狀態碼550之前,我們先來簡單了解HTTP狀態碼的基本概

Lockwaittimeoutexceeded;tryrestartingtransaction-如何解決MySQL報錯:事務等待逾時在使用MySQL資料庫時,有時可能會遇到一個常見的錯誤:Lockwaittimeoutexceeded;tryrestartingtransaction,該錯誤表示事務等待逾時。這個錯誤通常發生在並且
