Selecting a database for a large project [closed]

The question was asked: 6 years 10 months ago   views: 27

What better DBMS to choose for the development of a large project? Mongo DB it automatically attracts the attention of thousands of programmers like bees to honey, sharding and all the modern features? MySQL and equivalents ..? SQLite3? But she has the memory limits of databases and sharding no point in increasing the speed does not give.

How can you dock a big project and sqlite? The author of something evil stirs. Ahem, ahem. - 18-11-2012 в 11:30:30
You will forgive. I have realized that SQLite3 will not do. - 18-11-2012 в 12:40:21
Mongo DB as you hopefully know, the uses for your specific query language( like SQL in MySQL, for example, but not SQL,=)), so you'll have to study this specific language, but about attacks such as SQL Injection can be completely forget...but MongoDB has a number of other vulnerabilities... - 18-11-2012 в 13:26:44
Knew. But it is necessary ever to develop. Although, as I understand You, it is not development, but rather a more convenient model. - 18-11-2012 в 18:20:26

Answers   7


First you need to decide what type of database you will be working. In my own experience I can say that it is impossible to answer the question "which is better: Mongo or sql." We must proceed from the task.

Document-oriented databases (mongo, couch) would be better if you often need to copy records with their dependencies. Or, for example, if all records have the same fields.

If you have to handle arrays of data for the calculation of certain statistics (e.g., average condition cash all businesses for the N-th period), that are relational approach (mysql, postgresql).

Therefore, in order to narrow your selection of database, first select the type based on the task assigned to you.

Answered: 18-11-2012 в 13:59:17
The right approach. Thank you. - 18-11-2012 в 18:21:12
the truth in the middle. ) in large projects it is possible to divide your data into SQL and NoSQL database.. for example. reference books, magazines and documents are stored in a NoSQL, while the registers and records in SQL. - 22-11-2012 в 09:59:58

There are the 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 say big project, then perhaps it is not so much that a lot of data, but apparently on that many servers, a lot of connections. Humanly know how to do clustering only these monsters, but little things like MongoDB and others. - do not tell. Well shove you in there 100 gigs (and I doubt), and then what? What about SQLite not even talking: the key word here lite is that is lightweight, small. Well, at least made no mention of Hypersonic SQL :)

When the big project comes to the fore not so much the ability to contain data, so the ability to "hold" the load, using features of specialized server processors, the possibility of clustering, backup, data replication between instances. Oh and don't forget about support. What kind of support you get with MongoDB and especially with SQLite? Forum half-crazed developers-Indians?

In General, look towards big three. I personally prefer Oracle.

P. S. after Reading about the objectives:

Well, if we talk about the database of residents and the device they LK monitoring electricity, for example.

I feel scary for residents or for Chubais as electricity bills with SQLite'om will definitely not be paid...

Answered: 23-11-2012 в 09:14:45
1. Thank you for your professional advice. 2. You are there too. I just figure out. What can I say. The main thing is to throw a stone in someone else's garden from your. - 23-11-2012 в 17:13:46
Come on, I'm joking - never mind... - 25-11-2012 в 19:56:17

Mysqli or PDO, depending on which ligament.

At the moment for a big project, I chose MySQLi + PHP + Jquery + Memcached

Answered: 18-11-2012 в 11:06:23
Oops. Thank you. It turns out that MySQLi can be object-oriented, but at the same time, it is relational. And can be divided into sections. Live and learn. - 18-11-2012 в 12:39:58
@morfei, and for small project you would, then, Jquery, choose, like all JavaScript, right? Well HTML even for "large project" left to choose =) - 18-11-2012 в 13:23:24
He probably wanted to say, transfer of queries and data via AJAX to reduce load. - 18-11-2012 в 18:22:46
@qsad, Neither the Mysqli nor the PDO are not DBMS is a wrapper over api of mysql. Be careful. - 22-11-2012 в 08:35:40

@qsadwhat it means (quantitative data) a large project?.

Many large projects (clusters of multiple servers and storage systems in a SAN, terabytes of disk space) use Oracle, DB2 or MS-SQL.

With some data on this subject can be found here

Answered: 18-11-2012 в 17:50:12
Meant that the database could be more than 32ТБ, but I wanted to use SQLite3. The issue was dropped. Thank You. - 18-11-2012 в 18:22:11

No MySQL. Yuzayte Postgres!)

Answered: 18-11-2012 в 11:27:30
With horizontal partitioning? - 18-11-2012 в 12:33:16
Although not the essence. It there is generally a built-in. Thank you. - 18-11-2012 в 12:40:48
@nolka that relying, as you so clearly stated? - 18-11-2012 в 13:21:32
That we had to eat shit with mysql in my project, when part of the logic needed to implement a DBMS - 19-11-2012 в 07:15:05
support! postgres rocks! ) Yes start holivar! ) - 22-11-2012 в 10:03:14

It is better to use where You have more experience. And MySQL to build excellent solutions. Sharding, replication, and States for dividing there too.

Answered: 19-05-2014 в 20:09:36

The outrage around the fact what DBMS is the best of all — very popular on the Internet sport. Most of the answers here, alas, is about it. In order not to increase the tension will try not to mention here the names of various DBMS.

@qsad, the observation of a similar outrage scarcely will help you to understand the issue, rather confuse. So do not expect to hear here is the correct answer to your question. The fact that you can make the right choice here can only know in detail what should the system do, having an idea about the available resources (human and material). And most importantly, understanding of the subject area. Unfortunately I have to state that, judging from your question, your knowledge is insufficient in order to ask the right questions (and this is probably the most important).

If you have the time, brains, desire and readiness for a long time to study something not directly related to solving a specific problem — learn better this topic. Database and design booknaround and highly available systems is always interesting.

If the "deadline is yesterday", or the theme itself is not interesting to you — hire an experienced DBA (Database administrator). Even though I have no idea how you distinguish adequate DBA from God-knows-who.

P. S. I must say that I have some idea as could be a similar system. But I'm not going to voice them, given that: first my thoughts are based on the idea of the target system is composed of scraps of information provided by @qsad and a lot of guesswork, and secondly my experience and knowledge is definitely not enough that would design these systems.

Answered: 19-05-2014 в 23:02:39