Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

innodb has four levels of ACID-compliant transaction isolation. what's your complaint?


Are ALTER TABLEs transactional yet?


Just checked, and the answer is "nope." Have fun debugging your migrations!


Unfortunately, no DDL statements can be transactionalized on MySQL, and that is unlikely to change in the foreseeable future.


MySql is a joke and always has been. I blame a huge majority of the RDBMS hate on the fact that many peoples only experience with a RDBMS was MySql. The issues are numerous, but two of my personal favorites are silent data truncation and allowing 'indeterminate' results with non-aggregate or non-functionally dependent columns in the select[1]. 5.7.5 finally changes the default behavior of the former.

This site lists many of the issues: http://grimoire.ca/mysql/choose-something-else

[1] http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.htm...


There would be no data truncation if you enable strict mode (sql_mode = 'STRICT_ALL_TABLES'). Indeterminate results appear only if the column values in a group are different. SQL standart doesn't allow such selects at all (even if the values in the group are the same) so you have to write longer queries.

MySQL is not that bad, it was used in facebook and wikipedia.


Strict should be the default for something that stores your data. The SQL standard does not allow selects like that for a a reason. Indeterminate results are almost always bad for something that stores data. MySql is that bad [1] and was only used by people who knew nothing about databases to question all of the dumb things MySql did. I'm so happy postgresql is finally getting popular.

FB also uses php, so appealing to it being used is no argument.

[1] http://grimoire.ca/mysql/choose-something-else


As I commented in the parent: it is the default. It was enabled for new installs in MySQL 5.6, and all installs from MySQL 5.7.


Both of these behaviors you describe are no longer the default in MySQL 5.7 (strict_trans_tables + only_full_group_by).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: