When choosing a database, you may experience analysis paralysis.
I understand.
The number of choices can feel overwhelming, and more options are being engineered every
year.
Today, we survey the many options publicly available to human engineers, such as yourself.
So remain calm and do not lose your head.
You’re going to need that.
In this video, we are focused on selecting a RELATIONAL database, because you use SQL
to talk to such systems...
One way to divide databases is into free and commercial.
Some of the oldest and most established commercial databases are from Oracle, IBM, and Microsoft.
These options are decades old and have a lot of inertia behind them.
Millions of lines of code have been written to interact with these databases.
But as more people became software engineers, demand grew for a lower cost or free alternative.
This gave rise to the open source movement and helped produce MySql.
MySql is the “M” in the LAMP stack - Linux, Apache, MySql, and PHP.
But MySql is not alone in the free and open source category.
There is also Postgres…
MariaDB…
SQLite and dot-dot-dot.
If money is in short supply, then one of the free, open source databases will serve you
well.
They are supported by an EXTREMELY polite community of users.
But if you would prefer to pay a company to provide on-demand support, then feel free
to research the commercial options.
Another deciding factor is the size of your database and number of users who will access
your data.
Are you working with small amounts of data being used by a small group or people?
Or are you storing petabytes of data that needs to be served to millions of people around
the world simultaneously?
If you have tiny amounts of data being accessed by a tiny group of people, then installing
a database on your own tiny server is an excellent choice.
Everything is under your control.
Costs are fixed.
But if you are serving vast amounts of data to a vast number of simultaneous users, then
your decision may become … cloudy?
We are entering the era of cloud computing.
You can now let others worry about the hardware for you.
This way you can focus on the software.
Focus on the software...
The Tech Giants have built massive data centers all over the globe.
These data centers offer unparalleled capacity, and extremely low latency.
Instead of a small cluster of computers, a data center consists of tens of thousands
of servers assembled in an impressive arrangement with hypnotic blinky lights.
They have world class security, redundant power supplies, and more.
With this computing power, they offer a vast selection of services, but we will focus on
their databases.
In addition to proprietary data storage solutions, they also support popular open source databases
like MySql, Postgres, and MariaDB.
When using a cloud database, you specify your requirements: data center location... hardware
requirements... backup needs...
You are then billed on usage, much like a utility.
Many companies offer a small, free database to encourage you to try their service.
But once your usage goes beyond the hobby level, you will receive a bill.
Next, ask yourself: what will you do with all of your data?
Because cloud providers do more than host databases in their data centers.
They also offer a wide array of services.
File storage…
Analytics…
Artificial Intelligence and Machine Learning solutions…
Remember, your database is just one part of your overall system.
Do you want to use your data to train classifiers?
Will you be building TensorFlow models, for example?
Do you need image recognition capabilities?
Or speech recognition?
You may save money by storing your data locally, but building your infrastructure from the
ground up and maintaining it can be time consuming.
Cloud solutions may cost more in terms of money, but they may cost less in terms of
TIME.
This brings you to a personal decision: what time-money trade off are you comfortable with?
If money is tight, then working locally using free tools is probably best.
However, if you or your business has the budget, cloud services offer a very attractive proposition.
Another way to help you decide is to look into the future.
Are you working on an app that could spike in popularity?
If so, then you need to think about scalability.
Specifically, the ability to scale horizontally.
This means if there is a surge in data and demand, you need the ability to rapidly add
more servers to handle the load.
If sudden growth is a possibility, then a cloud solution will act as an umbrella, letting
you enjoy the rain of data.
The cloud service is not really an umbrella.
I am using what people call a “simile.”
In reality, cloud services are software running in data centers.
Here is another consideration.
What if you only need a modest database now, but want to be ready to move to the cloud
in the future.
In this case, choosing Postgres or MySQL would be a good compromise.
You can keep the database on your own tiny server for now, but rest assured there are
compatible versions in the cloud if the need were to arise.
And migrating from a local Postgres or MySql database to one in the cloud is fairly straightforward.
Of the free, open source relational databases with broad cloud support, there are three
standouts: MySql, Postgres, and MariaDB.
Is there any significant difference between them?
Not much in terms of core functionality.
All three are solid, open-source, and well-established databases.
And you can run them locally or in the cloud.
In recent years, MySql has stopped growing in popularity and has seen a mild decline
in market share as the competition has grown.
Meanwhile, Postgres and MariaDB continue to grow in popularity, with Postgres leading
the way.
While MySql is owned by Oracle, neither Postgres nor MariaDB are owned by a single company.
Their continued development is supported by a large and enthusiastic group of engineers
scattered around the world.
The number of factors to consider when choosing a database can be overwhelming.
But remember this: most of what you will learn will transcend the specific database you use.
SQL, database design, and optimization are skills you will need regardless of the database
you select.
So do not hit the panic button.
Instead, press the “download” button and try the databases for yourself.
Make use of the free quotas from cloud providers.
Try creating the same database in MySql, Postgres, MariaDB or some other database.
Which did you prefer?
The choice is yours...
It is an exciting time to be selecting a relational database.
Gone are the days when databases were expensive, and you had to devote significant resources
in support of your servers.
Storage is becoming increasingly commoditized.
We are standing on the shoulders of giant engineers, and it is time to explore the ocean
of data before us…
This is just a metaphor.
In reality, you are likely sitting in a chair about to write some code…
But you can still do something dramatic.
Support us on Patreon!!