What is the production ready NonSQL database?

2019-04-16 01:29发布

问题:

With the rising of non-sql database usage in high traffic website, I'm interested to use it for my project. Now I've heard several names like Voldermort, MongoDB and CouchDB. But which are among these NonSQL database that is production ready? I've seen the download pages and it seems that none of them is production ready because is not version 1.0 yet. Is there any other names other than these 3 that is recommendable to be used in production?

回答1:

I think you need to start out from your project requirements to see what kind of database you really need. There are many non-relational DBMS:s out there and they differ a lot in what kind of problems they are good at solving. I think the article Should you go Beyond Relational Databases? by Martin Kleppmann is a good starting point for finding out what you need. There's also a lot of stackoverflow threads on similar topics, these are my favorites:

  • The Next-gen Databases
  • Non-Relational Database Design
  • When shouldn’t you use a relational database?
  • Good reasons NOT to use a relational database?

When you have narrowed down what you actually need you can take a deeper look into the alternatives to see which DBMS are production ready for your use case. Production readiness isn't a yes/no thing: people may successfully deploy some solution that for example lacks in tool support - in another project this could be a no-go.

As for version numbers different projects have a different take on this, so you can't just compare the version numbers. I'm involved in the graph database project Neo4j and even if it has been in production use for 5+ years by now we still haven't released a version 1.0 final yet.



回答2:

What do you mean by production ready? As far as I know, all of them are being used on live systems.

You should make your choice based on how the features they provide fit your needs.

You can also add Tokyo Cabinet to the list as well as the mnesia database provided by the Erlang VM.



回答3:

I'm tempted to answer "use SIRA_PRISE".

It's definitely non-SQL.

And its current version is 1.2, meaning that someone like you must definitely assume it's "production-ready".

But perhaps I shouldn't be answering at all.



回答4:

Nice article comparing rdbms with 'next gen' and listing some providers:

Is the Relational Database Doomed? http://readwrite.com/2009/02/12/is-the-relational-database-doomed



回答5:

I will suggest you to use Arangodb.

ArangoDB is a multi-model mostly-memory database with a flexible data model for documents and graphs. It is designed as a “general purpose database”, offering all the features you typically need for modern web applications.

ArangoDB is supposed to grow with the application—the project may start as a simple single-server prototype, nothing you couldn’t do with a relational database equally well. After some time, some geo-location features are needed and a shopping cart requires transactions. ArangoDB’s graph data model is useful for the recommendation system. The smartphone app needs a lean API to the back-end—this is where Foxx, ArangoDB’s integrated Javascript application framework, comes into play.

Another unique feature is ArangoDB’s query language AQL — it makes querying powerful and convenient. AQL enables you to describe complex filter conditions and joins in a readable format, much in the same way as SQL.

You can model your data in several ways:

  • in key/value pairs
  • as collections of documents
  • as graphs with nodes, edges, and properties for both

You can access data in ArangoDB:

  • using the general HTTP REST API via curl/wget, or your browser
  • via the ArangoDB shell (“arangosh”)
  • using a programming language specific client library

Server requirements for ArangoDB:

ArangoDB runs on Linux, OS X and Microsoft Windows. It runs on 32bit and 64bit systems, though using a 32bit system will limit you to using only approximately 2 to 3 GB of data with ArangoDB.