'Lite' Databases

Ben Finney ben+python at benfinney.id.au
Fri Feb 20 22:13:19 EST 2015


Chris Angelico <rosuav at gmail.com> writes:

> Even if you use InnoDB for all of _your_ tables, the system catalog
> tables will all be MyISAM. So it's possible to lose critical metadata.

In addition, MySQL silently [0] loses data in many common situations.

    <URL:https://dev.mysql.com/doc/refman/5.6/en/silent-column-changes.html>
    <URL:http://www.davidpashley.com/2009/02/15/silently-truncated/>
    <URL:http://effectivemysql.com/downloads/MySQLIdiosyncrasiesThatBITE.pdf>

That it loses data so *by default* is what makes MySQL strongly
anti-recommended. Having an insane default, with an obscure specific
toggle switch to turn off only that particular insanity, should not
significantly improve one's estimation of MySQL.

That it has a great many such insane defaults, that one must discover
one at a time, and many of them result in silent data loss, should be
enough to swear off MySQL forever.


[0] There are warnings created for many of these data losses. Warnings
    are inadequate in MySQL, because they are ignored by default, do not
    interrupt the operation, require specific action to retrieve, and
    become inaccessible immediately after the operation. This counts as
    “silent” in my assessment.

-- 
 \      “I don't know half of you half as well as I should like, and I |
  `\   like less than half of you half as well as you deserve.” —Bilbo |
_o__)                                                          Baggins |
Ben Finney




More information about the Python-list mailing list