Top all-time · #2465
The Grimoire
Personal blog · grimoire.caprogrammingsystems
The Grimoire is a personal blog at grimoire.ca about programming and systems. Since 2013, 31 different Hacker News readers have linked it 39 times, most often “MySQL - Do Not Pass This Way Again”. It is still writing: the last post was on 2026-01-28, and you can follow it by feed.
Too few sampled comments (27) to say how often HN recommends it.?
Why HN links it
HN readers link grimoire.ca's MySQL critique "choose-something-else" as the standard case against MySQL in database debates. Other linked posts cover Git detached signatures.
Summarised by Claude from a sample of 27 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
A personal site.
Most-linked posts?
- MySQL - Do Not Pass This Way Again13 people · 19 mentions · first linked 2013-01-26
- Considering MySQL? Use Something Else. Already on MySQL? Migrate12 people · 12 mentions · first linked 2017-04-09
- /git/detached-sigs2 people · 2 mentions · first linked 2017-10-25
- I Do Not Like Go2 people · 2 mentions · first linked 2018-02-22
What Hacker News says?
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…
Comment linking /mysql/choose-something-else
on “Announcing SQL Server on Linux”Submitted MySQL - Do Not Pass This Way Again as a story · 224 points
HN discussionMySql 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…
Comment linking /mysql/choose-something-else
on “Announcing SQL Server on Linux”Submitted I Do Not Like Go as a story · 206 points
HN discussionFor MySQL vs PostgreSQL, I link people to this one: http://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “Announcing SQL Server on Linux”Submitted I Do Not Like Go as a story · 20 points
HN discussionThe design of MySQL has a lot more silent failures, silent coercing of data, and other ways that it attempts to do what it thinks you might mean (because you're an incompetent PHP programmer) instead of what you ask. The obvious example is that SELECT 0 = 'banana' returns 1. A typical takedown would be the likes of: http://grimoire.ca/mysql/choose-something-else (which also touches storage engine configuration thing…
Comment linking /mysql/choose-something-else
on “Why we lost Uber as a user”Submitted MySQL: Choose Something Else as a story · 7 points
HN discussion> And if MySQL wasn't robust then YouTube, Facebook, Twitter, Alibaba, LinkedIn etc wouldn't be using it for core parts of their infrastructure. It's definitely robust. Popularity is not an argument for quality. See: crocs, Justin Bieber, PHP. Those companies you mentioned, like many others, probably use it because they're locked in that technology, not because it's a superior one. Just like banks still use COBOL. I…
Comment linking /mysql/choose-something-else
on “Postgres gets support for upsert”Submitted Considering MySQL? Use Something Else. Already on MySQL? Migrate as a story · 6 points
HN discussionI've worked at a company that was doing > 20,000 TPS (transactions/sec) on a single PG instance with no problem. That is baby-tier usage for a DB. As far as why you should give up MySQL like I did four years ago: http://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “PostgreSQL 9.5: UPSERT, Row Level Security, and Big Data”Submitted MySQL: do not pass this way again as a story · 3 points
HN discussion> but it's not like MySQL is broken Here's a good article about that: https://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “Ask HN: Go-to web stack today?”Submitted Considering MySQL? Use Something Else. Already on MySQL? Migrate as a story · 2 points
HN discussionThat's... one way of looking at it. Just because most of the comments here have been (bizarrely) pro-MySQL, I have to link to this article: http://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “Rearchitecting GitHub Pages”Submitted Stop Using Git Pull to Deploy as a story · 2 points
HN discussionI was just reading this article; you might be interested: http://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “An open MySQL bug receives a real Birthday cake”Submitted Do Not Pass This Way Again as a story · 2 points
HN discussionBecause MySQL is the PHP of databases. Much like PHP is designed to just carry on truckin' whatever problem it encounters ( https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ ), MySQL was too. It's easy to slam some data into it and get it back without having to think too hard about what you're actually storing ( https://grimoire.ca/mysql/choose-something-else ). It's ease of use made it pervasive, much lik…
Comment linking /mysql/choose-something-else
on “We saved $50k/year with a Go microservice coded in a hackathon”Submitted Maslow's hierarchy of software needs as a story · 2 points
HN discussionI like to trot out this old gem[1] when people wonder why there's so much hate for MySQL. Nontransactional DDL alone is sufficient to classify it as a toy DB for me. Yes, I've been personally bitten by it. [1]: https://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “We saved $50k/year with a Go microservice coded in a hackathon”Submitted Do Not Pass This Way Again as a story · 1 points
HN discussionhttps://grimoire.ca/mysql/choose-something-else That's essentially my reasons for preferring PostgreSQL.
Comment linking /mysql/choose-something-else
on “Migrating 1200 databases from MySQL to Postgres”Submitted Bugs, Tasks, and Tickets from First Principles as a story · 1 points
HN discussionhttps://grimoire.ca/mysql/choose-something-else/
Comment linking /mysql/choose-something-else/
on “PlanetScale is now generally available”> - synchronous multi-master cluster (Galera, Group Replication) Which doesn't work, see [1]. What other features of those you listed the authors claim that work, and just don't when you look deeper? Lot of the big companies are using MySQL as a NoSQL database, and that's not a bad way to use MySQL, but it's a pretty bad relational database, see [2]. [1]: https://aphyr.com/posts/327-call-me-maybe-mariadb-galera-clu.…
Comment linking /mysql/choose-something-else
on “Why favor PostgreSQL over MariaDB/MySQL?”This post from a year or two ago is a pretty good summary of what's wrong with MySQL: https://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “Ghost 1.0”Have a read of this: http://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “MariaDB 10”Frankly, no; I've used all of Postgres, MySQL, MSSQL, and SQLite, and MySQL is the worst of the lot. No, PostgreSQL isn't a holy grain, but any user of MySQL would overall be better served by PostgreSQL; especially on AWS where the replication is so simple to set up, which IMO is the only good argument I've heard in favor of MySQL (but I hear even that is fraught with peril). MySQL is so completely riddled with bugs…
Comment linking /mysql/choose-something-else
on “Netflix Billing Migration to AWS”> I assume things are much better now Nope: http://grimoire.ca/mysql/choose-something-else
Comment linking /mysql/choose-something-else
on “A call to PHP's mt_rand generates only odd numbers”