MySQL is the little engine that could. It powers sites like Facebook, YouTube, Twitter, and thousands of blogs, CMSes, and e-commerce sites. Its value to the world and to the development community could be measured in the hundreds of billions, and yet it’s free, and you can use it just by downloading it. Almost every programming language has drivers for it and it can run on so many operating systems and architectures, there’s really no limit on it.
Yet there’s a dark side. MySQL is full of gotchas and bugs, and it lacks features that sometimes call into question its status as a real database. The documentation is often open-ended and confusing, with gaps in key parts. If you want to run it, you have the option of using it on Linux, Mac, Solaris, or Windows and every hosting company or provider like Amazon AWS has their own managed service, each with its own quirks and limitations. The user community has also produced thousands of projects, with varying degrees of completeness and support.
A simple question like “how do I back my system up?” has at least 5 good answers, each with their own advocates, tutorials, and scripts. In short, the MySQL world is a crazy bazaar that is at times overwhelming.
I want to cut through confusion
I’m writing a book to help take away the confusion and provide an opinionated guide that cuts through the confusion and provides you knowledge you need to get back to your other job(s). Your boss, your team, and your customers don’t want to hear “I’m researching 5 possible solutions.” They want to hear, “I have a great solution and I’ve implemented it.” This book is your fast-track through the most common issues I’ve encountered in MySQL.
Every time I read about team giving up on MySQL because MongoDB is easier, I cry a little bit. MySQL is so simple and easy, it’s been tested and debugged over decades, and there’s so much community support from utilities, scripts, blogs, and tutorials. I want to convince you that with a little knowledge, MySQL is easier than Mongo, and it will help you and your company make money.
Another trouble is with proprietary databases. Many people are under the impression that Oracle or SQL Server have the corner on performance, that they are not bounded by the laws of computer science. While Oracle and SQL Server have pretty awesome technology that lets them sort out horrific queries, with good schema design and well-written queries, MySQL can churn out tens of thousands of requests a second (and some benchmarks put that up to millions), which for most workloads is plenty.
My background is that I’m a senior DBA who’s worked on MySQL with small teams. I came from a Microsoft background and decided I wanted to go over to Linux/MySQL side of the house. I’m now writing the book I wish I had when I first started. I want to empower MySQL users who like me are under pressure but who want to take those steps that will pay off in the end, like good schema design and a solid backup and recovery plan.
I started writing when I saw a pattern of confusion and lack of knowledge among my coworkers or people on StackOverflow, Reddit, and HackerNews. I’ve helped my team understand and use MySQL, and I think I can help you too.
Throughout my career, I’ve made mistakes that I want to give you a chance to avoid. I’ll also guide you through those mistakes that you can recover from (writing a badly performing query) to those that might be a career limiting move (forgetting to monitor a production server).
The first audience for this book is those who’ve used MySQL but want to get a solid foundation. There are some things that you must do if you’re developing on MySQL or if you’re in charge of a MySQL server, and I want to give you a simple guide to the essentials, as well as pointers to further research if you want to go deeper.
Another value I want to add is pep talks throughout urging you not to give into short-term laziness when it buys you long-term trouble. I won’t nag you, but I want to give you motivation to do those things that don’t have an immediate payout but in the long run are well worth it.
This guide was also meant for entrepreneurs who are focused on building a product. I created a blueprint for using MySQL effectively for you to read quickly, apply what you’ve learned, and get back to work. I want to save you time and sleepless nights.
Why should you get this book? Two main reasons: it will reduce the risks of using MySQL while maximizing its power. Effective backups, scalable queries, and well-defined schema save you costs down the road. The end result is that you play less for your database (yes, even though MySQL is free, it still has a price). On the other hand, it will increase your revenue. I’m basing this off of a simple principle that the faster you can release a feature, the faster you can sell it to customers, and the more revenue you get. This book will show you those things you can do to complete your features faster. What’s faster than fast? How about no time at all. I want to show you the tools that are already complete, ready for your use.
I’m not going to claim I know everything about MySQL and this guide will be the end all, be all of MySQL books. I’m still learning, but I wanted to provide a way for others to benefit from what I’ve already learned. If you’ve read this far, sign-up below and get updates on the book.
Want to hear more about my book and what I’ve learned about MySQL? You can subscribe below and I’ll send you updates. I’ll also send out stuff on MySQL like tips and tutorials.