Learning Library

← Back to Library

MySQL Selection: Flexibility, Implementation, Deployment

Key Points

  • Jamil Spain introduces MySQL as a versatile database he first encountered in college, emphasizing its role in modern application architectures alongside front‑end and back‑end services.
  • He selects databases using three key criteria: flexibility of use, ease of implementation, and deployment considerations.
  • MySQL supports a full spectrum of SQL capabilities—from simple “SELECT *” queries to complex aggregates, operators, joins, foreign keys, views, and stored procedures—allowing developers to scale their data needs.
  • This flexibility lets teams evolve their database designs over time, making MySQL suitable for a wide range of use cases rather than a single, static scenario.

Full Transcript

# MySQL Selection: Flexibility, Implementation, Deployment **Source:** [https://www.youtube.com/watch?v=UO-yT7Ugnls](https://www.youtube.com/watch?v=UO-yT7Ugnls) **Duration:** 00:09:25 ## Summary - Jamil Spain introduces MySQL as a versatile database he first encountered in college, emphasizing its role in modern application architectures alongside front‑end and back‑end services. - He selects databases using three key criteria: flexibility of use, ease of implementation, and deployment considerations. - MySQL supports a full spectrum of SQL capabilities—from simple “SELECT *” queries to complex aggregates, operators, joins, foreign keys, views, and stored procedures—allowing developers to scale their data needs. - This flexibility lets teams evolve their database designs over time, making MySQL suitable for a wide range of use cases rather than a single, static scenario. ## Sections - [00:00:00](https://www.youtube.com/watch?v=UO-yT7Ugnls&t=0s) **Choosing MySQL: Flexibility, Implementation, Deployment** - Jamil Spain outlines his three key criteria—flexibility, implementation, and deployment—for selecting MySQL and shares his early enthusiasm for learning SQL. - [00:03:25](https://www.youtube.com/watch?v=UO-yT7Ugnls&t=205s) **MySQL Flexibility in Polyglot Apps** - The speaker highlights MySQL’s versatile, easy‑to‑deploy nature that supports multiple programming languages and use‑case scenarios, making it a reliable choice for evolving, multi‑technology application architectures. - [00:06:38](https://www.youtube.com/watch?v=UO-yT7Ugnls&t=398s) **Deploying from Prototype to Production** - The speaker explains transitioning code from development to deployment, comparing single‑instance monolithic setups with primary‑secondary scalable architectures for redundancy. ## Full Transcript
0:00Hello, my name is Jamil Spain, Developer advocate with the IBM Cloud. 0:05And I'm so very excited about my topic for today, 0:08which is learning about the MySQL database. 0:11This is actually one of the first databases that I actually had my start 0:15when I had my training in college as a database architect. 0:19And when you think about your application architecture, 0:23as a technologist you have to make certain decisions. 0:26Well, naturally, you have your front end technologies that you like, the backend services, but that database tier, 0:32what I'd like to do today is give you some common criteria 0:35that I use to select which databases that I want to use. 0:40And the three criteria that I have is the flexibility of use, implementation, 0:45and once you have all that fun in development, 0:48you really have to start thinking about deployment. 0:51Now, one of the great things that I love about MySQL is that you can go up and down the spectrum. 0:59Of course, if you're just starting out learning SQL, 1:02you have that opportunity to do all the standard things. 1:10So standard SQL, 1:12and that's really when I first started my first, it was so exciting to see the "select all from table". 1:23That's really where the magic really dawned on you that, oh man, this can be amazing, what I can do. 1:28I have some data in there, I can query and get results. 1:32And actually, the first time I actually saw a webpage change with dynamic results, 1:36it really blew my mind, I immediately fell in love with this database. 1:41So from standard statements, you can get into more complex aggregate functions. 1:51Or a lot of the expansive of operators. 1:55So, think about operators like between. 1:59We're doing dates aggregate can be a lot of your select this as some. 2:05You know, all those kind of operations that you can do. 2:08And it has even more flexibility for even complex operations, even as you get into things with joins. 2:18You can do foreign keys, which can kind of actualize a lot of your normalization. 2:24Where I have one table that wants to refer to another one. For instance, 2:28I have a database of books, table of books, and I may want to have authors that are associated with that book. 2:35Well, naturally, a book can have more than one author, 2:38so that would be a situation where I could have a table of authors and have 2:42an actual foreign key that results back to that one book. 2:46So, between joins and foreign keys, 2:51there's an excellent way to facilitate a lot of those, those those life cycles 2:55that you kind of go through when it comes to architecting a database design 2:59and even up more complicated to views, store procedures. 3:10Views where you can have complex queries that are simplified to a simple "select all", 3:14simple statement that can be run 3:16and stored procedures where you want to have a, 3:18basically, a set of statements that run on your particular engine. 3:25But really, I wanted to show those kind of levels to show that you can really evolve with it. 3:30It's very flexible to meet. 3:32Won't be a situation where it's just for one kind of use case 3:36that I'll be going for, and then I have to switch over, 3:38maybe to another database to kind of work through things. 3:41In today's application architecture, we're in the age of the polyglot, 3:47meaning I can use more than one technology 3:49for my particular application that I want to build. 3:53But MySQL is always a strong contender. 3:56Very easy to get going and can facilitate a lot of load for my application. 4:02All right, so let's cement that down, and let's give this a checkmark. 4:06I think we've covered the flexibility, really what I like to cover there. 4:09Great to start. 4:10Great to build and evolve with. 4:12Implementation. 4:15So, when he comes here, I like to take a look to see what SDKs are available, all right. 4:24With any set of languages, there's normally .. 4:27I look in any language, whether it's Java, Python, Node.js, I'll just say JS there, and etc, etc. 4:38I really like to see which languages do I have flexibility to work with, and normally I go to my go-tos before. 4:45My GoLang ... 4:46my favorites are Node.js, GoLang, Java to work in. 4:49So naturally there are, it is a common one that is around. 4:54With not so much coverage across all language, lets you kind of know that it is 4:58maybe new or maybe drivers are still being built to facilitate this, 5:02but I can definitely guarantee MySQL is actually one of those that works. 5:06I also want to know management tools. 5:09So, on the UI perspective, there is a common one. 5:13There are a lot of web-based ... 5:17... so, phpMyAdmin, there's a lot of web-based management consoles that I can use 5:23if I do want to gain a little velocity outside of using a command line client library on my tool. 5:31And also there are some GUI tools. 5:35So workbench. 5:38If one have a desktop application that I can use, 5:41so really a lot of great ecosystem built around supporting 5:44not only can I develop, but also the management 5:47if I want to load in things or just kind of overall see to my backup restoring from there. 5:53So all those elements are really useful to go. 5:57And it makes for a great supporting ... 6:03... a great supporting kind of program, a platform. 6:08I think of a common scenario that comes out is 6:12I have my web server and I have my DB, 6:16and this is a great pattern that it can be in the back end to kind of work with. 6:23Almost a lot of the common applications that you use today, 6:28a lot of the popular blogging platforms are built with this architecture, 6:32all right, web server going right with the database, and that's really your stack as it works. 6:38All right, so what does that mean? 6:41Well, as we do the check mark on implementation. 6:43Next, we've built something, 6:45we know we've got some exciting code we're working with, 6:47we're growing our knowledge of SQL, implementing it. 6:51I've got my web based tools to manage it and do my coding in different languages. 6:55I have my pattern down pat. 6:57The next obvious thing I like to go to is, 6:59as I want to move to production, or move to getting this out there, 7:03how easy is it to actually deploy? 7:06And there are primarily two form factors. 7:09You have the, of course, single instance. 7:14Which usually for a lot of your starter, starter applications, starter platforms, this is a great way to kind of work with. 7:23I can easily start to prototype something out. 7:25Have GUI tools to work with it. 7:27Start to build, load data in, start playing with what I think I want to build. 7:31Whether it's a web front end or mobile, for mobile getting data to the mobile. 7:35But I can really get there and really start to expand 7:38and really understand what my concept is as it evolves. 7:42It can stay single instance, kind of like a monolith, 7:46or there is a great way to scale that out, 7:49and that pattern for this scale out is really the primary secondary. 8:00So primary secondary model. 8:02Which means I'll usually have one primary node that I interact with 8:06in the same way I do the single instance, and it'll have ways to actually copy that data 8:11to any number of secondary instances to really have some redundancy that works. 8:19And I've even seen some patterns where I still do my writes to a primary. 8:26And maybe I want to read from my secondary. 8:30So there's a lot of great separation patterns there 8:34to really expand there and maybe use your front end application uses some of the 8:41the primary instance as it functions. 8:43Maybe you want to build some warehousing tools or to preview your data. 8:46They can actually just do a lot of reading if there's no editing from the secondary node there to work with. 8:52So this is kind of all I want to cover for this topic. 8:55The database is MySQL. 8:57Excellent starter tool, highly recommended to get started. 9:01Definitely something you want to have as an option in your polyglot. 9:04I love to hear in the comments below how you work with this database 9:08or if you have some experience with it. 9:11Until next time. 9:13Technically yours, I'm Jamil Spain. 9:16If you have any questions, please drop us a line below, 9:20and if you want to see more videos like this in the future, please like and subscribe.