mysql的transaction level对django的影响

mysql的transaction level对django的影响

Filed under: 数据库 |  

默认: transaction level对mysql是REPEATABLE READ, 这样一个mysql session内,
每次读到的资料都是不变的, 不管其他事务对表做了什么更新. 这样性能比较高, 但却
未必是得到准确的符合数据库最新情况的资料, 可能程序里会遭遇一些异常, 例如django
的get_or_create()调用执行碰到奇怪: 明明是无法get, 自动转做create,但数据库就
说记录冲突.

应该: 改用READ COMMITTED, 这是与oracle一致的.
在my.cnf里[mysqld]下写:
transaction-isolation=READ-COMMITTED

mysql> select @@global.tx_isolation;
+———————–+
| @@global.tx_isolation |
+———————–+
| READ-COMMITTED |
+———————–+
1 row in set (0.03 sec)

参考:
http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html
http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-isolation.html


Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

If you want to leave a feedback to this post or to some other user´s comment, simply fill out the form below.

(required)

(required)