How to choose a database for your application
See the original posting on JavaWorld
Picking the right database can often be critical to the success of an application. Rather than taking the advice of vendors or using a database because you already happen to have it, its useful to consider the fundamental purpose and requirements of the data store.
These are the most important questions to ask when you are picking a database:
- How much data do you expect to store when the application is mature?
- How many users do you expect to handle simultaneously at peak load?
- What availability, scalability, latency, throughput, and data consistency does your application need?
- How often will your database schemas change?
- What is the geographic distribution of your user population?
- What is the natural shape of your data?
- Does your application need online transaction processing (OLTP), analytic queries (OLAP), or both?
- What ratio of reads to writes do you expect in production?
- Do you need geographic queries and/or full-text queries?
- What are your preferred programming languages?
- Do you have a budget? If so, will it cover licenses and support contracts?
- Are there legal restrictions on your data storage?
Lets expand on those questions and their implications.