Overall Satisfaction with MySQL
We're using MySQL as our transactional DBMS to support our web application. Our entire development organization utilizes the same instance of MySQL 5.6, hosted on AWS. By using MySQL we're able to store data about our users and manage state across our web application. We are currently looking at moving to a hosted version of MySQL in hopes of extracting a bit more performance out of the DB then we are currently getting.
- quick setup, very easy to get it up and running even in a production environment
- hugely supported in the web community, very easy to find drivers/interfaces/support for using MySQL
- Can scale well through sharding, can also be a relatively high performance system with proper allocation and tuning
- MySQL has poor support for user defined functions and stored procedures
- windowing and some analytic functions are completely absent from the DBMS, this makes extracting some data much more difficult than it needs to be
- The query optimizer/planner can be poor at times, often it chooses to neglect indices that could've been used on more complicated queries
- Moving to MySQL 5.6 has allowed us to see a near 35% increase in database throughput and I/O operations
- By clustering our MySQL instance, we're able to increase the performance of the entire system substantially--it should scale to (potentially) a petabyte level as our business grows
- The lack of great support for UDFs and window functions has meant our development time has increased slightly when needing to extract data from MySQL
MySQL tends to be easier to administer and launch than these other varieties of SQL, not to mention it is open source and therefore free--which was a necessity for our startup budget. While Postgres is also free, it tends to be slightly harder to administer than MySQL and outside support for Postgres integration isn't currently as strong.