What is the best DBMS to choose for the development of a large project? Mongo DB with its automatic attracting the attention of thousands of programmers, like bees on honey, sharding, and generally modern features? MySQL and analogues ..? SQLite3? But it has database memory limits and sharding does not make any sense in increasing the speed.
Closed due to the fact that it is necessary to reformulate the question so that it was possible to give an objectively correct answer by the participants Max Mikheyenko , Vladimir Glinskikh , PashaPash ♦ , Regent , xaja 9 Oct '15 at 16:35 .
The question gives rise to endless debates and discussions based not on knowledge, but on opinions. To get an answer, rephrase your question so that it can be given an unambiguously correct answer, or delete the question altogether. If the question can be reformulated according to the rules set out in the certificate , edit it .
First you need to decide what type of database you will work with. From my own experience I can say that it is impossible to answer the question "which is better: mongo or sql". It is necessary to proceed from the task.
Document-oriented databases (mongo, couch) would be better if you often have to copy records with their dependencies in the system. Or, for example, if not all entries have the same fields.
If you have to process data arrays for calculating certain statistical data (for example, the average state of all companies ’cash desk for the N-th period), then here is the relational approach (mysql, postgresql).
Therefore, in order to narrow the circle of choice of a database, first select its type based on your task.
There are big three: Oracle, MS SQL Server and IBM DB2. Everything else is childish pranks, well, except that MySQL and Postgres are close to these giants.
When you are talking about a large project, it seems that it’s not so much that there is a lot of data, but also that there are a lot of servers, a lot of connections. Humanly, only the indicated monsters can do clustering, and every little thing like MongoDB and so on. - do not make me laugh. Well, you stuff 100 gigs there (and I doubt it), and then what? Well, I’ll keep silence about SQLite: the keyword here is lite - that is, light, small. Well, at least they didn't mention Hypersonic SQL :)
When a large project comes to the fore not so much the ability to contain data, so much the ability to "hold" the load, the use of features of specialized server processors, the possibility of clustering, backup, data replication between instances. Well, do not forget about support. What support do you get with MongoDB and even more so with SQLite? Forum of half-crazy Indian developers?
In general, look towards the big three. I personally prefer Oracle.
PS After reading about the goal:
Well, if we talk about the base of the inhabitants of the city and the device they have on electricity monitoring, for example.
I get scared for the residents of the city or for Chubais, since the electricity bills with SQLite will not be paid for sure ...
Mysqli or PDO, whichever is a bunch.
At the moment for a large project, I chose MySQLi + PHP + Jquery + Memcache
No mysql. Use postgres!)
It is better to use where you have the most experience. And on MySQL you can build great solutions. Sharding, replication and partitioning there too.
Holivary around what the DBMS is the most-very popular on the Internet sport. Most of the answers here, alas, it is about that. In order not to increase tension, I will try not to mention here the names of various DBMS.
@qsad , observing such holivars will hardly help you understand the question, rather it will confuse you. So you should not expect to hear here the correct answer to your question. The fact is that you can make the right choice here only if you know in detail what the system should do, having an idea about the available resources (human and material). And most importantly: understanding the subject area. Unfortunately, I have to state that, judging by your question, your knowledge is not enough to ask the right questions (and this is probably the most important thing).
If you have time, brains, desire and willingness to study something for a long time that is not directly related to the solution of a specific task - study this topic better. Databases and designing load-loaded and highly accessible systems are generally interesting.
If “you need to take the project yesterday”, or the topic itself is not interesting for you, hire an experienced DBA (Database administrator). Although I can not imagine how you distinguish an adequate DBA from the devil knows who.
PS I should note that I have some thoughts about how such a system could look like. But I will not voice them, considering that: firstly, my considerations are based on the idea of the target system formed from the pieces of information provided by @qsad and fortune telling on the coffee grounds, secondly, my experience and knowledge is not enough to design such systems.
I work with a database of ~ 70 GB in size, there are more than 300 million rows, and this is MySQL! No problem!