I’ve listed some use cases where it is optimal to use a NoSQL databases below
- Your relational database will not scale to your traffic at an acceptable cost
- Your data is supplied in small updates spread over time so the number of tables required to maintain a normal form has grown disproportionally to the data being held. Informally if you can no longer print your ERD on an A3 piece of paper you may have hit this problem or you are storing too much in a single database.
- Your business model generates a lot of temporary data that does not really belong in the main data store. Common examples include shopping carts, retained searches, site personalisation and incomplete user questionnaires.
- Your relational database has already been denormalised for reasons of performance or for convenience in manipulating the data in your application.
- Your dataset consists of large quantities of text or images and the column definition is simply a Large Object (CLOB or BLOB).
- You need to run queries against your data that do not involve simple hierarchical relations; common examples are recommendations or business intelligence questions that involve an absence of data.
- You have local data transactions that do not have to be very durable. For example "liking" items on websites: creating transactions for these kind of interactions are overkill because if the action fails the us
- Easy to use in conventional load-balanced clusters
- Persistent data (not just caches)
- Scale to available memory
- Have no fixed schemas and allow schema migration without downtime
- Have individual query systems rather than using a standard query language
- Are ACID within a node of the cluster and eventually consistent across the cluster
No comments:
Post a Comment