This question relates to choosing the best database storing data on a pc running windows. The pc is part of a commercial product which generates a big amount of data over time. Data consists of
- Test sequences
- Test results
- Configuration data
The connection between the software and the database is done via EntityFrameworkCore.
There is already an existing relational database model which has been normalized and optimized for usage in an relational usage. Querying large amounts of data will be essential. It consists of ~25 tables that are interconnected.
We chose MS SQL Server Express in the past for those local installation.
Meanwhile the amount of data generated by those devices (test results) grew in a way that we will probably reach the 10GB limit faster than expected. As there are much more curve/chart data which should be saved as well, the 10GB will probably be reached.
As of my knowledge there are no good practices how to handle the data after the Limit is reached. The only way would be to export/archive old data to free up space again. But querying these archived/old backups wont be easy.
Right now we are consider switching to another RDBMS for our commercial product like:
- PostgreSQL
- MariaDB
- MySQL (license seems to be needed https://www.mysql.com/about/legal/licensing/oem/)
Our aim is to use the existing DB-model for larger analyses of the data later on like trends, statistics and so on. The structure of the different results is very similar to make comparison/querying easier later on.Those queries to generate trends etc. will span over a large number of rows. Queries will include JOINs over multiple tables of the stored data. Our preference here was always a relational-DB over a NoSQL-Database. This requirement seems to be not optimal to consider a NoSQL-Database for the way how we want to store and query the data of these Testresults.
But we also looked into MongoDB, which makes storing of data very easy in the first place. But there also is the need from customer side to query that data later on (statistics/trends etc.)
- Which of the RDBMS would you suggest and why?
- How good is MongoDB in such a use case to query large amounts of testresults?