Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

expand, please?


I imagine something very specific like having a lot of inserts into a table and that being your main use case. Depending on your data some databases may be better than others and that should be easy to measure.

In most real-world cases the requirements however are not very clear and often conflicting so it's much harder to get data that shows the performance of one system over the other.


> Depending on your data some databases may be better than others and that should be easy to measure.

And the performance difference could be an accidental feature of the design and completely unintentional.

Postgres for instance has a native data engine, so it can store the exact row-ids for a row into an index, but this means that every update to the row needs all indexes to be updated.

Mysql has many data engines (InnoDB and MyISAM to start with), to the row-id is somewhat opaque, so the index stores the primary key which can be pushed to the data engine scans and then have it lookup a row-id internally. This needs an index to be touched for the columns you modify explicitly or if the primary key is updated (which is a usual no-no due to UNIQUE lookup costs).

When you have a single wide table with a huge number of indexes, where you update a lot of dimensions frequently, the performance difference between these two solutions is architectural.

And if you lookup along an index with few updates, but long running open txns, that is also materially different - one lookup versus two.

Though how it came about isn't really intentional.


We just published an Update to the Benchmark, please find it here: https://news.ycombinator.com/item?id=16473117




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: