29 ms·
You can tell a lot about a developer by their preferred database. * Mongo: I like things easy, even if easy is dangerous. I probably write Javascript exclusive
by thomascgalvin 6y ago
You can tell a lot about a developer by their preferred database.
* Mongo: I like things easy, even if easy is dangerous. I probably write Javascript exclusively
* MySQL: I don't like to rock the boat, and MySQL is available everywhere
* PostgreSQL: I'm not afraid of the command line
* H2: My company can't afford a database admin, so I embedded the database in our application (I have actually done this)
* SQLite: I'm either using SQLite as my app's file format, writing a smartphone app, or about to realize the difference between load-in-test and load-in-production
* RabbitMQ: I don't know what a database is
* Redis: I got tired of optimizing SQL queries
* Oracle: I'm being paid to sell you Oracle
- threeseed 6y agoAnd you can tell a lot about a developer when they post comments like this. Almost none of is remotely accurate e.g. RabbitMQ isn't even a database.
- macmac 6y agoRe RabbitMQ, isn't that OPs point.
- rickbad68 6y agoLOL
- deleted 6y ago[deleted]
- beardbandit 6y agoMan, people really hate Mongo. We use it for a very specific use case and its been perfect for us when we need raw speed over everything. Data loss is tolerable.
- craftinator 6y agoIt seems like you have the only good use case for it pegged down. I've worked at multiple companies that really, really didn't understand that putting something into the DB comes with some probability that it'll never come out. The arguments were "but it's a dataBASE, it stores data. They'd never sell this as a product if it LOST data; then it wouldn't be a database..."
- wzy 6y agoI can't believe the one item that was so obviously added as a joke went right over head. It may be good idea to take a break from the computer and find something less stressful to do.
- ceocoder 6y agoPerhaps that’s because some other message brokers are now being touted as databases[0][1], I remember seeing a thread about it on HN couple of days ago. [0] https://www.confluent.io/blog/okay-store-data-apache-kafka/ https://www.confluent.io/blog/okay-store-data-apache-kafka/ [1] https://dzone.com/articles/is-apache-kafka-a-database-the-2020-update https://dzone.com/articles/is-apache-kafka-a-database-the-20...
- ashtonkem 6y agoKafka is a very different beast from RabbitMQ.
- ianamartin 6y agoKafka is much more like a distributed file system that has queuing semantics baked in than it is an ephemeral queue that implements some level of persistence. The fact that you put Kafka and RabbitMQ in the same category sort of makes me feel like you're out of your element, Donnie.
- keymone 6y agoWatch this talk: https://m.youtube.com/watch?v=fU9hR3kiOK0 https://m.youtube.com/watch?v=fU9hR3kiOK0
- craftinator 6y agoAnd now I can tell a lot about you as a developer; maybe stay away from any kind of complex abstraction, wouldn't want it to go right over your head, ya know?
- 1123581321 6y agoAs someone who chose MySQL and provides direction to developers who really like Postgres, and who also uses Postgres for fun, I do find myself having to both defend MySQL as a prudent option and convince them that I know anything at all about Postgres or computer science. :)
- ForHackernews 6y agoI've heard MySQL (well, MariaDB, really) has improved a lot in recent years, but I still can't imagine why I'd ever choose it over Postgres for a professional project. Is there any reason? It used to be that bargain basement shared-hosting providers would only give you a LAMP stack, so it was MySQL or nothing. But if you're on RDS, Postgres every time for my money.
- VWWHFSfQ 6y agomysql's admin tools are still far superior than what's available for postgres
- cyral 6y agoWhat tools are these? Curious as a Postgres user
- larrik 6y agoMySQL Workbench is actually pretty damn good.
- philliphaydon 6y agoAs a PostgreSQL user. Pgadmin 4 is the worst.
- OOPMan 6y agoPgAdmin3 was much better, but then they decided to turn it into a web application and we got PgAdmin4 Very annoying.
- yawaramin 6y agoI have other boats to rock than MySQL! ;-)
- tester756 6y agoWhat about MSSQL?
- geerlingguy 6y ago"We are a Microsoft-only shop"
- tjalfi 6y agoSQL Server: I use C# and write line-of-business applications.
- yellowapple 6y agoMy day job involves developing for / customizing / maintaining two separate third-party systems that rely on SQL Server (one of them optionally supports Oracle, but fuck that). I gotta say, as much as I hate it with a passion, and as often as it breaks for seemingly silly reasons (so many deadlocks), it's at least tolerable (even if I feel like Postgres is better by just about every metric).
- ceocoder 6y agoThis might be a stupid question, but surely no one thinks of RabbigMQ as a database right? I’ve used it from 2012 to 2018 extensively, including using things like shovels to build hub spoke topologies, however not once did I think of it as anything but a message broker. Did I miss something huge?
- henryfjordan 6y agoRabbitMQ stores your data, right? Then it's a database! That's pretty much all it takes. A flat file, memory-store, SQL DB, Document store, any of them can be databases if that's where you stick your data! But also no, RabbitMQ and Kafka and the like are clearly message buses and though they might also technically qualify as a DB it would be a poor descriptor.
- ceocoder 6y agoAh I see, we are going with “well technically it stores something therefore it is database joke”. Now I’m fully onboard :) Back when I worked in LA my CTO used to joke that most places use Microsoft Outlook as a database and Excel as BI tool.
- goatinaboat 6y agowell technically it stores something therefore it is database joke Confluent, the company behind Kafka, are 100% serious about Kafka being a database. It is however a far better database than MongoDB.
- m0zg 6y agoYou laugh, but I bet Excel produces orders of magnitude more real "business intelligence" than all other "BI" tools combined.
- capsulecorp 6y agoYou bet, but I'd really love to see data that supports that.
- cgijoe 6y agoHAHAHAH The RabbitMQ one got me. Have your upvote, sir.
- ashtonkem 6y agoI prefer PostgreSQL, but MySQL provides a better clustering experience if you need more read capacity than a lone node can provide. Oracle is great if and only if you have a use case that fits their strengths you have an Oracle specific DBA, and you do not care about the cost. I have been on teams where we met those criteria, and I genuinely had no complaints within that context.
- larrik 6y agoGiven both my experience and prior research, I don't believe you that Oracle is ever better than have the stuff on the above list, and I think it's worse than Postgres on every metric. Every time I need to work with an Oracle DB it costs me weeks of wasted time. For a specific example, I was migrating a magazine customer to a new platform, and all of the Oracle dumps and reads would silently truncate long textfields... The "Oracle experts" couldn't figure it out, and I had to try 5 different tools before finally finding one that let me read the entire field (it was some flavor of JDBC or something). To me, that's bonkers behavior, and is just one of the reasons I've sworn them off as anything other than con artists.
- anaphor 6y agoSQLite: I enjoy using reliable and correct databases even at the cost of scalability
- chipotle_coyote 6y agoI admit I was kind of thinking that, even though I appreciated the humor. :) I imagine an awful lot of web sites out there would do just fine with SQLite as their back end.
- phyzome 6y agoIt's great for small, read-only websites that aren't quite simple enough to just be static HTML sites. Also for desktop app config/data DBs.
- risyachka 6y agoCan you elaborate? I've seen benchmarks and from their website what I understood is that it can handle really massive reads and writes, tens (maybe hundreds) thousands of ops per second, but personally never tested to this extent.
- stickupkid 6y agoIt really can (LXD cloud setup from personal experience), the problem is that if you don't serialise your writes then yeah, fun times to be had. There are compromises for all databases. People just like telling others their opinion as fact, and how wrong everybody is apart from themselves of course.
- kuschku 6y agoWe're using it in Quassel, and as soon as you go over ~3-4 parallel write/read threads, it starts locking up completely, sometimes taking 30 seconds for simple queries that should really take milliseconds. The big issue is that sqlite does full db locking for any operation, so during any write you can't just easily read at all. This can be fixed with WAL mode, but WAL mode is broken in uts early versions, and new versions of sqlite aren't in all disteos yet, despite being out for almost a decade. And even WAL mode gets abysmal performance.
- Thaxll 6y agoHow MongoDB is dangerous or less consistant that PG? I have one for you: I can't use PG or MySQL because my app will go down if the master is down so then the entire backend fails. How do you do HA with default PG?
- kinghajj 6y agohttps://www.postgresql.org/docs/10/different-replication-solutions.html https://www.postgresql.org/docs/10/different-replication-sol... Logical replication or synchronous multimaster replication may meet your needs.
- tonigen 6y agoMySQL is actually amazing, scale better than PGsql supports Json and is available everywhere. I see no reason to use any other dB for 90% of the use cases u need a dB for
- dijit 6y agoMySQL does not scale better than PostgreSQL. I can tell you this emphatically as I spent 6 months trying to eke out performance with MySQL (5.6). PostgreSQL (9.4) handled the load much better without me having to change memory allocators or do any kind of aggressive tuning to the OS. MySQL has some kind of mutex lock that stalls all threads, it's not noticeable until you have 48cores, 32 databases and a completely unconstrained I/O. EDIT: it was PG 9.4 not 9.5
- jonny383 6y agoMySQL 5.6 was released in 2012. Postgres 9.5 was released in 2016, so this isn't really a fair comparison.
- dijit 6y agoWhups, I meant 9.4, it's not possible that I could have tested 9.5 as the test was conducted in early 2015, both databases were the latest versions. yes, I should run the test again, but it was 6 months of my life, and I don't see how much could have changed.
- tonigen 6y agoYou comparing tech from 2 different eras... redo the benchmark today and I’ll be surprised if you come to the same results. PGsql even has a wiki page where they discuss implementing MySQL features and changing their architecture so they can scale. https://wiki.postgresql.org/wiki/Future_of_storage#MySQL.2FMariaDB https://wiki.postgresql.org/wiki/Future_of_storage#MySQL.2FM...
- dijit 6y ago> You comparing tech from 2 different eras... They were both the latest and greatest at the time > redo the benchmark today and I’ll be surprised if you come to the same results. I would, but it was not just a benchmark, it was a deep undertaking including but not limited to: optimisations made in the linux kernel, specialised hardware along with custom memory allocators and analysing/tracing/flamegraphing disk/memory access patterns to find hot paths/locks/contention. (and at different scales: varying the number of connections, transactions per connection, number of databases, size of data, etc) It was 6 months of my life. > PGsql even has a wiki page where they discuss implementing MySQL features and changing their architecture so they can scale. Just because mysql has some good ideas doesn't mean it scales better. I know for a fact that it didn't in 2015. I doubt that they have fixed the things I found, I could be wrong. But it would have to be a large leap forward for MySQL and PostgreSQL has had large performance improvements since then too. also, I read that page and it talks nothing about scaling, just that some storage drivers have desirable features (memory tables are very fast, and PGSQL doesn't support it; archive tables are useful for writing to slower media, you can do this with partitioning but it's not intuitive)
- benibela 6y agoWhat if they prefer an XML database (like basex, exist, marklogic)?
- maevyn11 6y agoha, nailed it dude.
- dustingetz 6y agoDatomic: I'm done already, send more work please
- jugg1es 6y agoI've been working with a partner company that is using Datomic to back a relatively impressive product - but I don't really see much written about it. What has been your experience?
- deleted 6y ago[deleted]
- mauflows 6y ago* Cockroach / Spanner: you know what's cooler than millions?
- pnako 6y ago>* H2: My company can't afford a database admin, so I embedded the database in our application (I have actually done this) I'm familiar with the variant, "InfoSec won't let us deploy a DB on the same host".
- OOPMan 6y agoI've used H2 Ina couple of my personal JVM applications mainly because when it comes to JVM it's a somewhat nicer fit than SQLite
- tgsovlerkhgsel 6y agoHow far does SQLite scale? Obviously not good for anything public facing with thousands of concurrent users, obviously good enough for something you only use yourself, but what about internal tools with a couple hundred users total (few of them concurrent) - where's the limit when it starts slowing down?
- mping 6y agoCuriously, I just read this: https://blog.expensify.com/2018/01/08/scaling-sqlite-to-4m-qps-on-a-single-server/ https://blog.expensify.com/2018/01/08/scaling-sqlite-to-4m-q...
- danpalmer 6y agoExpensify aren't really scaling SQLite in the way that people would expect. To say it's scaling SQLite is not exactly wrong, but probably gives the wrong impression. The users of their database likely wouldn't see it as SQLite, and they don't use the stock SQLite code. They have their own layer on top that happens to use SQLite as the storage format on disk[1]. This layer means they aren't using full SQLite at the application level, but rather using their custom database in the application, and SQLite within their custom database. Further, they've customised the SQLite codebase as far as I can tell to remove much of the functionality that SQLite uses to ensure that multiple instances can safely edit the same file on disk together, then they memory map the file and just have many threads all sharing the same data. [1]: FoundationDB also does this, and scales to thousands of nodes. The trick is that it's essentially _many_ separate, very simple SQLite databases, each being run independently.
- mping 6y agoAgreed, its not a vanilla SQLite but can give you a rough idea of the quality of SQLite codebase.
- philwelch 6y agoNeo4j?
- golergka 6y agoI love postgresql, but I don't remember when did I last interact with it with command line instead of pgadmin.