Dave Stokes is MySQL Community Manager at Oracle and a certified MySQL 5.6 database administrator. He has vast experience of DB administration and has been MySQL Certification Manager at SUN.
In his interview with Cloudways, he talks about the start of his career, compares MySQL with MariaDB and other MySQL forks in some detail, also talks about NoSQL in detail and, in the end, he gives wonderful advice to students. Enjoy the wide-ranging interview.
Cloudways: David, who was your inspiration to start your career as a MySQL community manager? How did that person motivate you?
David: Not so much a person but an entire group of folks. Years ago I was a sales engineer for a clustering product and went to the MySQL User Conference in Orlando, Florida. I had been using MySQL for years but this was the first time meeting anyone from the company. Everyone from CEO Marten Mickos on down impressed me as professional. Impassioned, funny, and just flat out amazing. I told myself I need to work with these folks if I ever get a chance.
Fast forward a few years and I am trying to get my MySQL 5.0 DBA certification and found many of the questions on the exam less than clear. I also noticed the Certification Team at MySQL AB was looking for a PHP Programmer. I sent in a resume along with a cover letter that was half self-promotion but with a paragraph about problems I saw on the exam. I was hired and shortly thereafter became the Certification Manager. Then Sun showed up with a billion dollars to buy MySQL AB and later Oracle took over Sun. I found myself in the Oracle Cert group managing a spreadsheet. I left to go to Calpont to be the customer service manager for the InfiniDB columnar database but we did not have enough customers to service.
Then I saw that a MySQL Community Manager position was open and applied. I wanted to work with the MySQLers again and feel very lucky to have the best job in the world.
Cloudways: Do you think NoSQL can ever compete with SQL in terms of designing a database system or managing relational databases?
David: The NoSQL products are getting better all the time. What is exciting is seeing the NoSQL features being added by the RDMS vendors. Several including MySQL have added JSON data types. We also have key/value pair directly into InnoDB storage engine tables. I have been watching the Hadoopsphere trying to add ACID compliance with mixed feelings — It is like bolting a trailer hitch to a Ferrari or Bugatti to me. I hope that this will be like the ASCII EBCIDIC wars of the 1970s and technology moved on past one way to encode data.
Cloudways: What are your key roles as a MySQL Community Manager at Oracle?
David: I evangelize MySQL products, educate audiences, and answer questions (or find the folks who can answer questions). I am also a lightning rod to management so that anyone with a question, gripe, complaint, vexation, concern, query, postulation, or whatever can contact me and I will act as their advocate.
Cloudways: There are many MySQL forks available, like MariaDB and others. What are your suggestions for choosing one over the other?
David: The main thing I stress when I talk is that you determine your real needs. If your paycheck depends on your database working 7/24/365 then your needs are much different than a hobbyist. Your website just might be the next Facebook, Twitter, or a Booking.com but your data has different needs so you can not follow exactly what those three do and succeed. And what are your realistic one, three and five year goals. One of the things hammered into me when I was getting my Masters of Business Administration is that if you lose sight of the big picture you have no real plan.
Then when you have a plan with goals defined you can look at what tools (and databases are tools) you need. Then look at the vendors, evaluate their products, and their track records. MySQL has consistently put out more and better software under Oracle’s stewardship – and our competitors readily admit that. See which of the vendors has been adding true new functionality to the product like the native JSON data type, GIS Support and GTIDS (Global Transaction IDentifiers). If you study our product road map and even make suggestions what you want to see in 5.8 then I feel confident that you will pick MySQL.
Cloudways: People say that MariaDB is faster and more secure than MySQL. What are your thoughts on it?
David: Benchmarks are kind of wobbly for most folks. An ‘X does A four percent faster than Y does A’ comparison may not reflect what your true working data needs are. Look at the MySQL benchmarks that we publish and you can see the configuration settings so you can replicate the benchmark on your hardware. Our competitors do not always do that. Unless your business is TPC benchmarks you may not be happy with the results going purely on benchmarks, just as a fast zero to sixty time in your new car will not help you during your daily commute. These days it is fairly easy to set up a Vagrant image with your data so you can test options and it is very, very hard to beat MySQL 5.7. Please see Dimitri Kravtchuck’s benchmarking blog for solid examples.
Security is a different matter and I know MySQL surpasses here. With MySQL 5.7 you get a secure install by default – no anonymous accounts, no root accounts without passwords, and no test database. This eliminates a lot of the threat vectors that were used against MySQL in the past. Now we support password aging, rotation, proxy accounts, InnoDB table space encryption, and will even generate security certificates for your server to use with SSL. 5.7 creates a random password for you during installation rather than the previous practice of having no password. Oracle is a very security conscious corporation and our engineers work very hard to meet and surpass the corporate standards.
The biggest security and performance to any database are the folks at the keyboards administrating, programming, and using it. No matter how good a product is there is always the possibility that a lot good work for performance and/or security will be negated by someone taking shortcuts. Your DBA may have everything locked down but all you need is someone with the root password on a sticky note by their keyboard to facilitate chaos.
Cloudways: MySQL 5.7 now supports the long awaited JSON data type. What more data types do you think that MySQL should also consider adding in?
David: Our engineers are asking for input for the MySQL 5.8 release but I have not heard of other data types from the folks I have been talking to lately. We also added Geospatial support in 5.7.
Cloudways: How would you compare other databases like MongoDB and Firebase with MySQL? What do you think mobile app developers should use as their database storage?
David: This is very app specific and what type of data you need to keep. If you miss recording whacking an ogre with a magic wand in a game it is annoying for the player. If you miss an EKG it could be deadly. There is no one-size-fits-all for data.
Sadly many developers are not taught relational theory, thinking in sets, or much about the nature of data. This is very hard work to do properly and some lack the patience to do it. So many want to code right away and not plan for the future. Then many think the latest and greatest tech must be better than anything else not knowing they are painting themselves into a corner. Sadly they miss companies like Sabre who do hundreds of thousands of airline ticket transactions with relational databases each minute easily day in and day out and pick their data store from whom gave them a coffee cup at a conference or a passing recommendation from a web advertisement.
Cell phone companies track their products with MySQL Cluster as it is great for recording short, bursts of data in heavy loads. But that would be overkill for Formula 1 fans wanting to know the latest lap times of Lewis Hamilton.
Also what are you going to do with your data long term? Do you study traffic pattern flows from the cell phone data to determine where you need repeaters or do you use it to compare physical speed to spot commuter traffic congestion. Did that EKG look different than yesterday’s or last week’s and if so, is it a pattern to be reported to a cardiologist. This may be foundation of a data warehouse of a digital landfill.
Cloudways: Hosting large databases can be tricky. Do you think hosting them on cloud servers like AWS EC2 instances will provide a boost to database performance?
David: You may be moving the ‘tricky’ from your data center and your staff to Amazon’s data center and staff. This is very similar to doing your accounting in-house or using an outside firm. Hopefully, you know your data better than anyone else. Putting on the cloud makes sense in many cases and takes away a lot of the internal infrastructural problems for business. It also is a great way for a small business to scale as needed at a very low cost. Not everyone can do this as in cases of some medical and financial data. If I were consulting with a small shop or startup that wanted to focus on things other than data operations, I would certainly have them look at the cloud. And the ability to scale up with a credit card is very attractive.
Cloudways: You have vast work experience, which job was your favorite?
David: My current job as a MySQL Community Manager. I get to meet interesting people, try new software, travel, solve problems, and there is always something new to learn.
Cloudways: Name some people that you would like to recommend to follow in the MySQL community or the people who have influenced you during your journey in the database world?
David: Go to http://planet.mysql.com and read the blogs. MySQL aggregates the blogs from the community including competitors to provide insight into what various people are doing. Giuseppe Maxia, a former MySQL Community Manager, always seems to be doing something fascinating. Reading the blogs of the Facebook folks like Mark Callaghan, Yoshinori Matsunobu, Domas or any other of their crew gives insight on what it takes to make a thumbs up icon appear for billions of people screens. The folks from Percona really dig into MySQL and often find facets that I never would have found on my own. And Oracle’s engineers do an amazing job of communicating new features in their blogs with insights on their use that are invaluable. Plus we get new authors all the time and each has something to add.
Cloudways: There are many resources on the web that say using caches like Redis cache and Memcached can improve the performance of a website. Which kind of caching solution do you suggest for database heavy websites?
David: This too is specific to your data. Are you caching what is coming in, going out or both? We used to recommend the MySQL Query Cache for frequently run queries but soon realized it was single threaded. You can use the MySQL Memcached plug-in to do staggering amounts of key/value access to InnoDB or NDB storage engines if you need to drink from a fire house. Well over a billion a minute. Caches, if used properly are a wonderful adjunct. Usually caches are not persistent and you have to plan ahead to warm up new caches or scrap data that you want to persist into another data store. Somethings like the scores of a football game do not change that rapidly and then for a fairly short duration so it can be kept in a cache or even in an application.
Cloudways: What is your advice to beginners and students looking to build a career in Database Development? How would you motivate them?
David: Learn the basics. In the Japanese martial arts they stress kihon or the basics. All the advanced stuff is based on doing the basic things by rote. Learn to do backups so that you can restore a database, a table, or a row. Get to know installation, account management, replication, and query optimization. There are books galore, web posts too numerous to count, and people in local user groups to learn from. But YOU – YOU – have do the basics over and over until you know them well. And you learn by breaking things and then getting them running. What happens if you delete the FRM files in the data directory? How long does it take to alter a table to change a char(32) to a varchar(64)? And sometimes the way to fix things is to get the backup.
I get several emails or messages each week from businesses looking for experienced MySQL database administrators or developers. The demand is there and the pay is there. So if you are a developer who is not happy doing the back end work to get the latest UI button moved, as I was at one time, you might consider databases.
Start Creating Web Apps on Managed Cloud Servers Now!
Easy Web App Deployment for Agencies, Developers and E-Commerce Industry