| ▲ | malisper 3 hours ago | |||||||
> Your design choice went from a Postgres design pattern to a Mysql one. The difference is the reindexing cost vs the lookup cost - Postgres optimized for lookup and Mysql does for indexing on writes. Or more accurately, Postgres was better with good schema design using joins & mysql was optimized for a bad design with less normalization where many indexes exist for the same table You are right that MySQL does better when you have lots of indexes, but I don't think the tradeoff is that the overall Postgres architecture is better with good schema design. Having secondary indexes point the primary key enables things like undo logging, which obviates the need for vacuums - vacuums being the most painful part of Postgres. On top of that your primary key index will be mostly cached so the cost of the indirection is much smaller than it may first appear | ||||||||
| ▲ | tomnipotent 2 hours ago | parent [-] | |||||||
I think OP is just alluding to the fact that Postgres needs to do less work to go from secondary index to table data, since the tid is a direct pointer to the exact page and slotted entry while MySQL needs a b-tree walk. > primary key index will be mostly cached so the cost of the indirection is much smaller than it may first appear Not sure I follow. If it's in-memory you save having to read from disk, but you still have to walk the b-tree to go from PK to data. | ||||||||
| ||||||||