I've read online on multiple occassions that MySQL is a bad database. The places I've read this include some threads on Reddit, but they never seem to delve in on why it's a poor product.Is there any truth to this claim? I've never used it beyond a very simple CRUD scenario, and that was for a university project during my second year.What pitfalls, if any, are there when choosing MySQL as your database?
Pitfalls of using MySQL as your database choice?
mysql;pitfalls
There are two different kinds of pitfalls, those from using MySQL as your flavor of RDBMS and those of using an RDBMS instead of other types of databases.Using MySQL instead of alternate RDBMS's:See this wikipedia comparison table for various comparisons of MySQL to other RDBMS's.You will very likely prefer Microsoft SQL Server if you are building an ASP.NET web application, as the system is designed to work well together, I believe for both developers and IT managersYou may prefer Oracle if you are need of a more advanced DB set-up involving clustering (Oracle RAC) or advanced DB procedures.  Not that MySQL doesn't support many of the features, but from what I've seen, you are much more likely to find an experienced DBA who knows this stuff for Oracle than MySQL.See this question at SO for extensive comparisons of PostgreSQL to MySQL that say it better than I can.Even more SO: Disadvantages of mysql versus other databasesUsing RDBMS's instead of other types:Read up on the idea of NoSQL and other DB types:NoSQL: If Only It Was That Easy(above is linked from) When to use MongoDB or other document oriented database systems? (more)https://softwareengineering.stackexchange.com/questions/5354/are-nosql-databases-going-to-take-the-place-of-relational-databases-is-sql-goingWhen to use CouchDB vs RDBMSRDBMS's make heavy use of indexing for performance.  On very large databases, this can have an adverse affect on performance or even reduce the optimal number of rows per DB/Shard requiring more hardwareNot as ideal if you are storing a massive amount of data but reading less frequentlyIf you don't have lots of foreign relationships, relational databases might not be ideal (document storage)All that being said, MySQL is a great database, and I haven't worked at a company in the last 8 years that hasn't used it, in a wide variety of web applications (such as e-commerce, web sites/apps, enterprise/B2B, web games).  For a large majority of typical web application use cases, it's a great choice.