Databases
Let's face it, as developers, we use a muriad of databases. All with their own pros/cons and quirks. Some a good for relational comparisons and other excess in speed or failover. This article at least, explains why I use the databases I do and my thoughts on them.
Databases I've Used
- Microsoft SQL Server
- Microsoft Access
- SqlLite
- MySQL
- PostgreSQL
- Redis
- MongoDb
- InfluxDb
- QuestDb
- KDB+
Microsoft SQL Server
Microsoft SQL Server was one of the first databases I ever used. It was installed on a Windows Server Machine at the company I worked for and it set me down the path of learning SQL. I think this database is meant for enterprise people who want relational data. It has built in authentication but at it's core, it's just a relational database.
Microsoft Access
You know, if you wanted a simple database that's portable and can be used with Microsoft Office products, it's a decent option. It's not great for big data but for a relatively small dataset, it's useful to learn.
SqlLite
Now, SqlLite is essentially the portable version of a SQL database. When I used it, it didn't have any authentication but it was portable. I think for certain applications, it can be useful but again, any portable database option should be for a smaller dataset.
MySQL
Funny enough, I do actually like MySQL. Considering it's usually coupled with MySQL Workstation, it makes it quite easy to work with.
PostgreSQL
The powerhouse of SQL databases, many prefer this database to others. I don't think it's as easy to use in comparison to MySQL but with pgAdmin, it can be quite nice to use. If you program using ORM's like Prisma, it makes working with PostgreSQL quite easy.
Redis
For in memory database, Redis is still the preferred database for many people. It's great at caching and for simple pub/sub system, you can use it to subscribe to real time events.
MongoDb
I've tried to like MongoDb with it's Replica Sets and it's ability to scale horizontally but managing clusters just seemed like a huge pain in the ass. It's great for schemaless systems but overall, it never became my preferred choice of databases.
InfluxDb
If you've done timeseries databases, you no doubt have ran across InfluxDb. It's great but there's a learning curve when working with it plus you will have to learn the Flux language. It's not hard but that's not where I had issues with InfluxDb. My issue came done to understanding how to fine tune InfluxDb and I never got it down to working as I'd like.
QuestDb
QuestDb, my favorite timeseries database so far. It's got a lot going for it in terms of being a column based database and just out of the box performance is amazing. I love that it has a dashboard which you more or less send SQL queries to. It has built in REST functionality and you stream data to it via ILP.
KDB+
My latest adventure in the world of databases. It's the defacto timeseries database for finance but I just think unless a company you work for uses it, it's a lost cause. Only people who work specifically at hedgefunds and know Q will use it but for most people, I'm just going to tell you, QuestDb is the future.