<story><title>Why we&apos;re ending support for MySQL</title><url>https://about.gitlab.com/2019/06/27/removing-mysql-support/</url></story><parent_chain><item><author>shanemhansen</author><text>MySQL is a decent nosql option with mature replication. If you care about your data, expect MySQL to be your foe rather than your friend.&lt;p&gt;Do you expect your triggers to fire? You are SOL &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;bugs.mysql.com&amp;#x2F;bug.php?id=11472&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;bugs.mysql.com&amp;#x2F;bug.php?id=11472&lt;/a&gt;&lt;p&gt;Do you expect to be able to insert utf8 into utf8 columns? Don&amp;#x27;t be naive. Read the docs and you&amp;#x27;ll discover utf8mb4 or as I like to refer to it: mysql_real_utf8.&lt;p&gt;How about transactions? Surely a real SQL database supports transactions right? Or at the very least if it doesn&amp;#x27;t it would complain loudly when you use a transaction where not supported right? Once again this behavior is helpfully documented &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;dev.mysql.com&amp;#x2F;doc&amp;#x2F;refman&amp;#x2F;8.0&amp;#x2F;en&amp;#x2F;commit.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;dev.mysql.com&amp;#x2F;doc&amp;#x2F;refman&amp;#x2F;8.0&amp;#x2F;en&amp;#x2F;commit.html&lt;/a&gt;&lt;p&gt;Do you expect to be able to put a value into MySQL and get that same value back out? You are SOL. But it&amp;#x27;s documented.&lt;p&gt;I can honestly say that the only appropriate time to use MySQL is when you can&amp;#x27;t use postgres and you are willing to move from a RDBMS to something that requires significantly more work to prevent data corruption.&lt;p&gt;I respect the hell out of MySQL engineers in terms of raw performance and the engineering of Innodb. I&amp;#x27;m sure they aren&amp;#x27;t happy there&amp;#x27;s a million broken applications relying on defaults they can&amp;#x27;t change. I&amp;#x27;m sure they aren&amp;#x27;t happy that fundamental limits in how pluggable storage engines work make ACID transactions not possible in the general case.&lt;p&gt;Postgres, for all of it&amp;#x27;s issues, feels like a database that has your back.</text></item></parent_chain><comment><author>dano</author><text>I moved away from MySQL in 2004 to Postgres and never looked back. Thanks for articulating these things once again for the community.</text></comment>
<story><title>Why we&apos;re ending support for MySQL</title><url>https://about.gitlab.com/2019/06/27/removing-mysql-support/</url></story><parent_chain><item><author>shanemhansen</author><text>MySQL is a decent nosql option with mature replication. If you care about your data, expect MySQL to be your foe rather than your friend.&lt;p&gt;Do you expect your triggers to fire? You are SOL &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;bugs.mysql.com&amp;#x2F;bug.php?id=11472&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;bugs.mysql.com&amp;#x2F;bug.php?id=11472&lt;/a&gt;&lt;p&gt;Do you expect to be able to insert utf8 into utf8 columns? Don&amp;#x27;t be naive. Read the docs and you&amp;#x27;ll discover utf8mb4 or as I like to refer to it: mysql_real_utf8.&lt;p&gt;How about transactions? Surely a real SQL database supports transactions right? Or at the very least if it doesn&amp;#x27;t it would complain loudly when you use a transaction where not supported right? Once again this behavior is helpfully documented &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;dev.mysql.com&amp;#x2F;doc&amp;#x2F;refman&amp;#x2F;8.0&amp;#x2F;en&amp;#x2F;commit.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;dev.mysql.com&amp;#x2F;doc&amp;#x2F;refman&amp;#x2F;8.0&amp;#x2F;en&amp;#x2F;commit.html&lt;/a&gt;&lt;p&gt;Do you expect to be able to put a value into MySQL and get that same value back out? You are SOL. But it&amp;#x27;s documented.&lt;p&gt;I can honestly say that the only appropriate time to use MySQL is when you can&amp;#x27;t use postgres and you are willing to move from a RDBMS to something that requires significantly more work to prevent data corruption.&lt;p&gt;I respect the hell out of MySQL engineers in terms of raw performance and the engineering of Innodb. I&amp;#x27;m sure they aren&amp;#x27;t happy there&amp;#x27;s a million broken applications relying on defaults they can&amp;#x27;t change. I&amp;#x27;m sure they aren&amp;#x27;t happy that fundamental limits in how pluggable storage engines work make ACID transactions not possible in the general case.&lt;p&gt;Postgres, for all of it&amp;#x27;s issues, feels like a database that has your back.</text></item></parent_chain><comment><author>tracker1</author><text>Changing the defaults across a major release is something they&amp;#x27;ve had several opportunities to do, time and again they have kept a &lt;i&gt;LOT&lt;/i&gt; of weird behaviors.</text></comment>