insert into table1 ...;
update table2 set count=count+1;
以上插入東西到table1
,如果成功,更新table2
的count
字段。有沒有比交易更有效的方法?
當然這種事情可以通過事務處理,但事務需要鎖定表,這在高併發系統中效率不高。如果您需要更新該事務中的多個表,則可能會更糟糕。
您的解決方案是什麼?
我使用PHP,我執行的交易是這樣的:
mysql_query('begin');
mysql_query($statement1);
mysql_query($statement2);
...
mysql_query('commit');
因此,它看起來像那些$statement
提到的所有表將被鎖定?
哪個版本的MySQL具有穩定的觸發器? – user198729 2010-01-26 12:36:46
> = 5.1.6 http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html – Rufinus 2010-01-26 13:09:09