Selecting a Database Product
Selecting a database product comes down to analyzing the options available, and assessing whether the specific product will grow with your needs as your application scales in volume of data, supporting features, and so on.
Specific criteria to look for on a day to day operational basis includes knowing bandwidth limitations and having an estimation on query time, and whether the database has an ability to handle multiple queries simultaneously.
One framework to use for networked database (such as for web applications) is the CAP theorem, which states that it's impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees:
- Consistency: every read receives the most recent write
- Availability: every request receives a response, without the guarantee that it contains the most recent write
- Partition tolerance: that the system continues to operate despite an arbitrary number of messages being dropped or delayed by network between nodes
Three popular open source relational database options:
- SQLIte - small footprint, portable
- MySQL - most popular
- PostgreSQL - most advanced open source relational database, supports concurrency
There are other data models available, including NoSQL and NewSQL, and Graph database.
- DB Engines Ranking https://db-engines.com/en/ranking