Supposing I've started a new project that needs a database for persistence purposes.

What are common practices to determine which database technology (MSSQL, MySQL, MongoDB, etc...) would best fit the requirements of the project?

What are important considerations to keep in mind when looking for a proper database technology?

  • 2
    This common practice is called systems architecture
    – mustaccio
    Jan 16, 2019 at 13:59
  • Details about the project would be good. What you've given us so far is "I need a car... Which one should I buy?"... Jan 16, 2019 at 15:01
  • @Vérace I'm not actually searching for an answer that is specific to my project. What I'm interested in are the following two things: 1) Are there any common practices on how to find the right database technology for a specific project. 2) What are the most important factors one should keep in mind when trying to find the best fitting DB technology?
    – Praind
    Jan 16, 2019 at 15:28
  • Still a shopping list. We need more detail, and I'm voting to close until it's provided. To continue the car analogy, are you going off-road or do you want a limo? Ferrari/Lamborghini or Rolls Royce? Toyota/Nissan or Mercedes/BMW? Budget? What sort of sever do you have? Widows or Linux expertise in-house? What will the app do? Data per-second/minute/hour/day/month/year? Data types? SQL or NoSQL? There are too many variables to be able to even begin to answer your question! Jan 16, 2019 at 19:28
  • @Vérace I think you still didn't get the point of this question. It's not about my project, it's about a development process in general. Look at jmk's answer, he mentioned some good points.
    – Praind
    Jan 17, 2019 at 9:32

1 Answer 1


Adding a no-answer as I don't know of a formal method for choosing a database architecture (remember you buy a architecture with special backup requirement, HA feature, hardware requirements). Basically it boils down to

  • You need the optimal database for the enterprise not only your project (If a "optimal" database for your project would be DB2 on AIX is of no use to your project if all your operating team does only Windows and SQL Server)
  • Do you need HA? which one? Switchover? active-active?
  • What type of disaster recovery do you need?
  • Formal (e.g. customer requirements, supported OS) and legal requirements
  • What type of infrastructure is on the customer site (SAN? virtualization? cloud?)
  • Monitoring? Backup? (If your backup software does not support a RAC database or the modules for backing it up cost more than the rest of your project, it's pointless to use that database. Same is valid for monitoring
  • Skill of your operating teams
  • type of data (Geodata?) Is it business critical? (your HR has slightly different impact than a simple database the tags on your website
  • amount of data

There is a whole lot more to consider but in my experience these are good starting points.


Not the answer you're looking for? Browse other questions tagged or ask your own question.