MySQL really needs to be the database you use
August 25, 2016
MySQL really needs to be the database you use
Score 9 out of 10
Vetted Review
Verified User
Overall Satisfaction with MySQL
A clustered MySQL instance is used as the data warehouse for a significantly large enough public ISP contract for a third party large UK phone company. This entire platform needs to be available 24/7 either to customer agents or the public for ordering services or reporting problems and MySQL is at the heart of this platform acting as the data warehouse. Equally we needed a data warehouse that could cope with the many hundreds of thousands it not millions of B2B daily transactions with up and down stream provisioning and billing systems. As always, startup and ongoing support costs are constantly questioned and using MySQL enabled us to keep these down.
Pros
- Help and Support - Being open sourced there is massive amount of help on the internet via a simple search. 99.99% of the time someone had exactly the same problem! - So this should help reduce, in a production environment, incident handling times . Likewise plenty of info for your development team to read up on to.
- Easy to Setup - Out of the box a simple MySQL environment is just a few clicks of an install shield! It will run on any modern laptop and you may want to install a companion Apache / Tomcat and PHP software to give your dev people their local dev environments.
- Scaleable - MySQL will scale to almost the largest data warehouses (assuming here you can a good db design and implementation). We have been using in a multi-node HA cluster with no problems.
- Management and Development Tools - There are a number of good quality software tools that provided admin and development work spaces features. MySQL Workbench and TOAD for MySQL are good examples.
- Software Cost - Depending upon what you are doing with MySQL the cost for the software licences will be nothing if your application is covered under the GPL licence. There will be technical support costs (if you choose to have these) but these are likely not to be as great as other DB platforms.
- Training - If you have development staff experienced in SQL then they should be able to pick MySQL up with little training. Administration isn't the headache much larger DBs come with.
- Works well with the following - Apache/Tomcat - Oracle Weblogic - JAVA, PHP, JSP, Perl.
- Hardware Cost - When comparing against Oracle we found the costs for a MySQL cluster were less than an Oracle cluster (either an Oracle RAC and defiantly EXADATA environment).
Cons
- Some of the bells and whistles of the larger DB solutions are missing. Examples of this include some types of table encryption, solutions like data vaulting, and utilisation of an entire disk for MySQL (not like some DBs that can do file/disk management instead of the OS e.g Oracles ASM). You will also find some types of index and certain forms of partitioning are missing. However you have to ask yourself how often you would use these features anyway!
- PL/SQL - It is now possible to use/create PL/SQL procedures in MySQL but in my opinion this isn't as mature in terms as programming structures as Oracle PL/SQL.
- Backups/Restore - Personally I am not a great fan of the backup/restore features built in to MySQL. I have found they can take a long long time to import/export a table with many many millions of rows of data.
- Table Fields - We have had problems with MySQL to store large binary files (e.g. images/video ) and they are some quirky gotchas covering 'fulltext' searches and indexes that you have to be aware of. These are minor but important and annoying if you want to do something you can't!
- Project Setup Costs - As MySQL is under a GPL licence and for our project there we no licensing costs (you need to check you are covered for your project). This has a huge saving compared to using Oracle and other such heavy weights.
- Development Cycle - We found that MySQL was well suited for using it within Lean/Agile software development environments. Changes can be made quickly without being over complicated to implement and most of the time by an application DBA or a middleware developer.
- Cluster Design - To date we have had no DB outages (we are using a HA cluster design) and therefore lead to cash and end customers T2R processes have been 100% available.
Compared to Oracle MySQL is lacking some of the advanced features Oracle provides but through a detailed business and technical requirements capture process it became clear we would not need these very advanced features. Oracle is stronger on the backup and restore side of things and here I mean it does seem quicker using Oracle to import/export very large databases/indexes and partitions however we decide to live with the difference. All in all set up and ongoing costs was a significant factor in our decision to use MySQL.
Our business doesn't have significant SQL Server expertise and with the costs and limited choice of OS involved of using SQLServer we eliminated it at a very early stage.
Our business doesn't have significant SQL Server expertise and with the costs and limited choice of OS involved of using SQLServer we eliminated it at a very early stage.
Using MySQL
Pros | Cons |
---|---|
Like to use Relatively simple Easy to use Well integrated Consistent Quick to learn Convenient Feel confident using Familiar | Requires technical support |
- Installation - An out of the box installation takes just a few minutes.
- Statistics & Performance- Getting any really detailed performance stats e.g. IO, Memory Usage on how the database performs can be difficult and are not as well documented as say Oracle.
Yes - There isn't a mobile interface that ships with the DB but you can use a third party PHPmyAdmin. This gives the ability to manage the most important features of the DB (user management, export of data, running SQL queries, creating indexes etc).
Comments
Please log in to join the conversation