|
Hello everyone. I want to know, what's your go-to or favorite general purpose database for your side projects or solo projects, and why ? I've tried, since 2-3 years, MySQL, MongoDB, SQLite, Firestore and a bit of Postgres. I've enjoyed MySQL the most so far, and I don't like Firestore much (feels expensive), but I'm not a pro' dev yet, nor I have any extensive experience in any of these system. After few projects, the most painful part has been migrations overall, which is why I consider MongoDB there. Also, I know that there is JSON data types within MySQL & Postgres, and I know that MySQL also have abstraction to have collections a la MongoDB that can coexist within your database along traditional tables. (Tho', its not much popular) The project I want to do, is tiny and kind of niche. If it ever succeed, it will be around 1-2 million visits per month kind of website at most, I've seen some website peaking at 30m, but there is only one like that, from the data I know. Part of the data of the application will be hard to structure, given I don't have direct control over the sources, and they do things differently. For the rest, it will be user generated data that can easily be predictable. Daily, there will be stats generated based on the different sources, the user generated data. There will be a system to search through some data items, with up to 30-40 parameters to refine the research. At the moment there is around 40K items I've gathered, and it grows of 1-2k items per year from what I've seen. What would you use, or not use, and why ? What are your tips & tricks overall to not shoot yourself in the foot, given that I've not extended experience. Sorry for my english. |
My current project (https://nuenki.app) uses Postgres. There isn't much complexity to the data it stores, but there is quite a lot of it (I use Postgres to cache hundreds of thousands of translations). I'm happy with it - I've had fewer deployment issues (zero) than I used to have with mongo (irritatingly many, often around ARM problems), SQL is nicer to use, and Rust's SQLx library works really well.
If your data is difficult to model because the source you're getting it from is in an awkward format, surely you should be transforming it into something nicer to work with at ingress?
Honestly, Postgres with some sensible keys and optimisation (just Google it and apply what's relevant to your use case) should be more than fast enough.