5 ms·
> - MySQL for DB (Vitess for sharding) Curious why not postgres?
by diminish 6y ago
> - MySQL for DB (Vitess for sharding)
Curious why not postgres?
- thisisbrians 6y agoDHH (somewhat surprisingly) said he really has no preference between MySQL and Postgres: https://twitter.com/dhh/status/1275909837793062912 https://twitter.com/dhh/status/1275909837793062912
- Aduket 6y agoWhat does that answer of his even mean? That he prefers mysql ?
- BiteCode_dev 6y agoI interpret it as "I didn't think about it, picked the first thing that worked in the past, and don't wish to make an argument about it, so let it go".
- Lammy 6y agoI assume it means his bottleneck has always been somewhere higher up in the stack :)
- torgoguys 6y agoI think he means that if you use Postgres you are more likely to also be an evangelist for it. That doesn't tend to happen on the Mysql side. You don't hear people saying "you should switch from postgres to mysql" but you hear plenty of the opposite. Mysql works fine for most things and so that's what he used.
- thisisbrians 6y agoNow that I've thought about it more, it makes more sense. When used properly, Rails handles a bunch of the stuff that would make Postgres a better choice (like data validation, constraints, etc.)
- matt2000 6y agoProbably in-house expertise and experience running previous services. That usually (or should at least) outweighs feature set in selection process, especially for databases.
- sethhochberg 6y agoThere's something to be said for familiarity - I work in a Postgres shop now, but spent years operating large MySQL clusters in prior jobs. I'm learning Postgres, but still way more intimately familiar with MySQL (and in particular, InnoDB) internals and would probably reach for it for any new project I were architecting on my own. Major relational databases generally all do the same stuff in similar ways for the 80% use cases, but when you get into the 20% of weird edge cases, operational concerns at scale, and troubleshooting... really knowing the storage engine internals like the back of your hand is useful.
- PaulAnunda 6y agoIn addition to in-house experience, I've heard many good things about Vitess (check out the users at https://vitess.io/ https://vitess.io/).
- dmlittle 6y agoThey probably use MySQL for Basecamp and it's worked for them so they're also using it for Hey (same team developing both). As for Vitess it makes sense since it's made to work nice with Kubernetes (which they are using). I don't know of a Postgres equivalent.
- mr_ndrsn 6y agoding ding ding We have a winner!
- ksec 6y agoIs there a Vitess for Postgres?
- dmlittle 6y agoLooking at Vitess' roadmap[1] it's in their medium term roadmap but I'm not aware of any other project that currently support Postgres. [1] https://vitess.io/docs/resources/roadmap/ https://vitess.io/docs/resources/roadmap/
- sougou 6y agoThis is still in our plans. We're likely to launch by end of year.
- Sammi 6y agoIsn't Citus sort of the same? https://www.citusdata.com/ https://www.citusdata.com/
- ksec 6y agoYes but I feel Vitess is much more widely used than Citus. MySQL community, last time I check has formed a more mature ecosystem and conscious on HA and Clustering. Postgres still feels more like throwing you a bunch of options and you are on your own. It is not that a solution being more widely used means it is good, you are just less likely running into edge cases with no help at all.
- meritt 6y agoMySQL 8 is very solid and has resolved the vast majority of the gripes of the past. Postgres is, as always, amazing software, but MySQL is no longer the choice to be shunned.
- brobinson 6y agoI don't know if I could go back to not having transactional DDL, partial and function-defined indexes, non-blocking ("concurrent") indexing, and so on...
- Kiro 6y agoWhat do you build that requires those things?
- brobinson 6y agoI've used them (via Postgres) to build large database-backed web applications (like Hey), realtime bidding systems (100mm+ records, 250,000+ requests/sec), and so on over the last 10+ years. Recursive CTEs as well, and MySQL finally has those as of a year or two ago. The feature gap is closing, but it's been a very, very slow process.
- meritt 6y agoI'm not sure where I suggested "Hey, long time Postgres users, you should switch to MySQL!". The point is it's a solid modern database and a completely fine option in 2020. MySQL8 supports functional indexes and concurrent indexing fyi. It still does not have transactional DDL nor partial indexes.
- brobinson 6y agoGood to know, thanks. And I didn't suggest that you suggested that. :-)
- ksec 6y agoIs there a MySQL Roadmap somewhere? I cant seems to google anything up. Compared to Postgres which seems have way more information. And Postgres still hasn't caught up to MySQL in multi / clustering solution. Or may be they dont ever intend to focus on it and leave it to third party.
- debarshri 6y agoIt is probably because they use k8s, vitesse becomes a natural choice
- praveenperera 6y ago> I've been a MySQL Stan for 20 years. Too old to change now. https://twitter.com/dhh/status/1275905393575641088 https://twitter.com/dhh/status/1275905393575641088
- rsanheim 6y agoBasecamp (and 37 Signals) has been a MySQL shop forever, so I'm sure they have a ton of operational experience with it. There is no reason for them to switch to Postgres at this point, for much of the same reasons a place like GitHub is still on MySQL. Changing database engines with large, established apps has a _huge_ cost and is usually not worth it.