如果你有一個數據庫事務應該是隻讀的,你提交還是回滾?有沒有任何理由去做這個或那個?其中一種方法是否可以提高數據庫性能?在只讀數據庫事務之後,提交還是回滾會更好?
1
A
回答
3
某些RDMS(至少Oracle)具有READ ONLY隔離級別。否則,我更喜歡ROLLBACK
,因爲它不會在事務日誌中創建條目(從性能的角度來看性能稍微好一點)。
更新 一些解釋。
大多數RDMS記錄所有已提交的事務和與事務相關的更改。即使沒有更改,服務器也會記錄一個事務。我沒有看到通過存儲無用數據來浪費服務器資源的任何問題。
1
我Downpour046 同意我做只讀操作如下。像魅力一樣工作,沒有問題。
Session session;
synchronized (this) {
session = currentSession();
Query rowResult = session.createSQLQuery(rowQuery).addEntity(table.getClass());
tableRow = rowResult.list().toArray();
}
public Session currentSession() {
Session s = (Session) session.get();
// Open a new Session, if this thread has none yet
if (s == null || !s.isOpen()) {
s = sessionFactory.openSession();
// Store it in the ThreadLocal variable
session.set(s);
}
return s;
}
的
相關問題
- 1. 分佈式數據庫事務是否保證提交/回滾?
- 2. 應用於數據庫的事務更新,無論是否提交或回滾
- 3. 如何在提交後回滾數據庫更改?
- 4. datastage中的數據庫事務(提交和回滾)
- 5. EJB-2.0事務回滾是撤銷還是恢復數據庫更改?
- 6. Laravel 5.2執行多個數據庫事務,然後提交或回滾失敗
- 7. 在rails中提交回滾事務
- 8. 當提交失敗時,Nhibernate是否會回滾事務?
- 9. 回滾事務提交返回錯誤
- 10. 後構建提交:好還是壞?
- 11. 更新後提交事務
- 12. 如何在讀取IDOC時控制事務(提交/回滾)
- 13. PDO在提交/回滾之前丟失事務
- 14. 如何在sidekiq事務完成之前提交數據庫?
- 15. 只讀數據庫訪問事務?
- 16. hibernate事務導致在mysql提交和隨後回滾innodb
- 17. 可以在提交SQLite事務後回滾嗎?
- 18. SQL事務回滾並提交
- 19. 提交和回滾Oracle事務
- 20. Django models.py事務回滾/提交問題
- 21. 回滾先前提交的事務
- 22. mysql事務(提交和回滾)
- 23. 等待其他事務在開始另一個事務之前提交/回滾?
- 24. 更好的是,客戶數據庫還是統一數據庫?
- 25. Java Servlet在提交數據庫事務之前返回響應給客戶端
- 26. 會話中間件:事務中間件之前還是之後?
- 27. 回滾提交的數據
- 28. 多個數據庫的事務回滾
- 29. Grails - 回滾管理數據庫事務
- 30. ServiceStack Ormlite事務在提交後讀取有時返回null
可能重複[我應該提交或回滾讀事務?](http://stackoverflow.com/questions/309834/should-i-commit-or-rollback-a-read-transaction) – svick 2012-02-12 13:51:00
[我應該提交還是回滾讀取事務?](https://stackoverflow.com/questions/309834/should-i-commit-or-rollback-a-read-transaction) – Wolf 2018-01-11 11:53:39