| That's interesting. A lot of your suggestions are actually exactly the same for SQL based databases. If your schema is not fit for the task at hand, it can slow it down by an order of magnitude, and the process of changing schema is also similar. Though, i would think, a properly designed SQL database would need such full schema refactoring less often, since adding a few tables within the same structure is easier. It sound like you're describing use cases with greater data volumes than I usually use SQL for. (Mostly Data Science use cases, where larger datasets typically end up in Spark, or similar) My experience is that SQL based systems work best up to a few 100 millions of records in the largest tables (a few billion at most), and with transactions per second is less than about 10000. Around those volumes is where SQL start to get really expensive. And often SQL is used for use cases where number of records per table of less than 10 million and transactions per second in the low hundreds or lower. But I'm probably biased in the opposite direction that you are. For me, performance usually means efficient joins. Which means that even if I'm leaving RDBMS's behind, I still use SQL where I can (such as in Spark). |
NoSQL DBs take large volumes of data, little CPU, and almost no RAM
SQL DBs take lower volumes of data, loads of CPU and RAM
Storage is cheap, CPU is expensive, hence NoSQL is cheap. Even when your project is not in the 100 of milions records this can be significant because you then are able to offer a cheaper product than the competition's