Tuesday, September 4, 2012

On MySQL

I know, ranting is bad ...

But then, it cannot come close to the evil that is MySQL now can it ?

I'll take what's known as the "best" MySQL available, mysql InnoDB 5.6 as it's supposedly the most "RDBMS" of all the forks.

the good :

  • it's a database
  • it's used by beelions of people (at least)
  • there probably are half a thousand tutorials
  • it's available on many hosting environments
the bad :
  • slow joins
  • slow subqueries (some are just on the retarded slow side, like 1m)
  • no native FTS, resulting in major WTF on the order of CONCAT LIKE
  • hackish foreign key support
  • no IP datatype
  • bad datetime/date datatypes
  • no ACID compliance IF you use triggers (fk change does not fire trigger...)
  • MANY gotchas (like weird/undefined default behavior)
  • many PHP libraries (mysqli looked more or less alright, mysql is crappy, there are others...)
  • no triggers on views (instead of)

So sure we could go on and on, but right now, if you need a RDBMS and not just an EAV store or in-memory cache, try PostgreSQL, it will do so much more for you, starting with keeping your data consistent.

No comments:

Post a Comment