0

I'm building a foss Python application, and am looking for a flexible database management system which will work for my isolated desktop application. I'm looking for something that is NoSQL but which works well when running locally. I have previously been using SQLite but that has the drawback of being inflexible. When researching this i found MongoDB which is very flexible (for example you can easily add new properties to data), but from what i've seen it's not recommended to use for isolated (not connected to a remote server) desktop applications

What DBMS can you recommend for me? Or is it better to look for simpler options like using pickle or shelve? The only problem is these options is that i need to store and query up to 1,000,000 entries so am not sure about if there is a performance problem there

There's so many options out there an i have only a bit of experience with SQLite so i'm grateful for any help you can give me!

UPDATE: At least for shelve it seems to be too slow for my use case: Is shelve really slow and taking a lot of memory or am I doing something wrong?

sunyata
  • 1,843
  • 5
  • 27
  • 41

2 Answers2

1

Personally when I need a serverless nosql DBMS I go with: https://unqlite.org/ It's pretty fast, robust, requires no configuration for standard use and it's cross platform.

i_hate_life
  • 23
  • 1
  • 6
0

You're basically describing something like SQLite. You may say that it's inflexible, but to an old DB fart like me it can more rightly be accused of not being stringent enough, e.g. about types. But for the sort of application you describe, that's not going to be an issue.

The sort of flexibility you're looking for means you're looking for a document database of some sort; no RDBMS is going to fit your use case much better than SQLite. You can search for a good fit as well as I can, and a few good keywords would be document database, nosql and embedded, the latter setting it apart from a DB that runs as a separate service. Let us know what you find.