We're really proud of our DB. It is open with MCWS.
https://www.jriver.com/speed.html
Fast indeed, which is what matters
There are however some drawbacks and areas of improvement:
- fully in memory DB, problematic for huge libraries on cheap machines (but if you have a huge library you should also be able to afford 16/32/64GB RAM as needed)
- changing the length of text on any field requires a full rewrite of the corresponding DB file; ie, adding Lyrics to a file at the top of the collection will trigger a full rewrite of the "field (Lyrics).jmd" file, which can have tens/hundreds MB. It may require recompressing the data with ZLib, depending on how you are doing it in memory. This is not so bad today, with SSD drives, but it's still an inefficiency.
- very poor (ie, none) data redundancy and recovery capability. Any DB corruption cannot be recovered without restoring a backup
- relational fields feature is grafted on top of the DB, which doesn't natively support it. This sometimes is the source of data inconsistencies and makes it hard to add new features that leverage the DB
- Lack of indexes (except the ones you create in-memory when loading the DB). More indexes would make common uses of the GroupQuery functions much faster on large DBs
I agree that speed is the single most important factor. For very large DBs it's likely that MySQL/MSSQL DBs offer higher query performance when configured with appropriate indexes and relational structure; however, it's true that the vast majority of MediaCenter libraries out there are 'small' (ie, less than 1M records), so the gains would not be visible for most people. It would however increase interoperability, and possibly lead to the creation of more 3rd party tools (including migration tools, which some people ask for)