Comments on: LOCK TABLES in MyISAM is NOT a poor man’s tranactions substitute https://shlomi-noach.github.io/blog/mysql/lock-tables-in-myisam-is-not-a-poor-mans-tranactions-substitute Blog by Shlomi Noach Wed, 18 Mar 2009 11:03:01 +0000 hourly 1 https://wordpress.org/?v=5.3.3 By: Roland Bouman https://shlomi-noach.github.io/blog/mysql/lock-tables-in-myisam-is-not-a-poor-mans-tranactions-substitute/comment-page-1#comment-1154 Wed, 18 Mar 2009 11:03:01 +0000 https://shlomi-noach.github.io/blog/?p=658#comment-1154 Hi!

“But perhaps it should be stated more clearly, then, what ACID compliance means.”

Well, I think there is not really a formal compliance. It’s more like, ACID is just a convenient acronym to refer to a number of properties that are a pre-requisite for implementing transactions. Standards like SQL take these concepts, develop specifications that could be implemented. If you have an implementation, you can then determine wether it complies to the specification. (which is slightly different than “complying” to the original concept)

]]>
By: shlomi https://shlomi-noach.github.io/blog/mysql/lock-tables-in-myisam-is-not-a-poor-mans-tranactions-substitute/comment-page-1#comment-1153 Wed, 18 Mar 2009 09:41:13 +0000 https://shlomi-noach.github.io/blog/?p=658#comment-1153 Roland,

“a single statement can succeed partly” – absolutely right. Should have mentioned that while at it.

Consistency: that’s very interesting. I would also suspect the case is implementation dependent. But perhaps it should be stated more clearly, then, what ACID compliance means.

Reagards

]]>
By: Roland Bouman https://shlomi-noach.github.io/blog/mysql/lock-tables-in-myisam-is-not-a-poor-mans-tranactions-substitute/comment-page-1#comment-1152 Wed, 18 Mar 2009 09:33:53 +0000 https://shlomi-noach.github.io/blog/?p=658#comment-1152 Good post, all true.

few comments:

“This won’t work on MyISAM: every statement is “committed” immediately.”

Actually, its worse than that. MyISAM is very much row based, a single statment can succeed partly, operating on some rows but not all implied by the statement.

“C: Consistency. An error in a statement would roll back the entire transaction in a transactional database.”

Not true. Typically, a runtime error results in automatic rollback of the offending statement, leaving a pending transaction. But I think this behaviour is implementation dependent. (as in choice to rollback entire trans or just the statement)

regards,

Roland

]]>