Forum .LRN Q&A: Re: can .LRN support MYSQL database?
EVERY autocommitted statement is executed within its own implicit transaction. That means that an INSERT or UPDATE is guaranteed to execute to completion or to roll back automatically (say, if your machine crashes). With the original MySQL backend, atomicity at the statement level was not guaranteed.
This misunderstanding of the role of transactions has been very common in the MySQL world ... we know better here :)
Having said that, the InnoDB back end for MySQL is fully transactional and AFAIK guarantees atomicity for individual statements as well as explicit transactions. Today, the major issue would be the still relatively weak support for more complex SQL constructs in MySQL.
For our project, the really BIG issue is the expense involved in maintaining multiple databases. We can't, as a project, really afford to maintain more than one open source RDBMS. Postgres gets the job done, and is much closer to Oracle in its extension set and follows the standard closely, plus we already support it so it wins by default.
The original (and default) MySQL backend is the MyISAM table type. With MyISAM there is no atomicity guarantee whatsoever. There's a utility that tries to repair broken databases with MyISAM.
You only have some atomicity with the InnoDB and BDB table types.
Personally, I've never yet seen a single convincing example of why so-called "Object Relational Mapping" would ever be of any real use at all.