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

This change wasn't widely advertised and is a radical change from earlier versions of MySQL where they were pretty awful in terms of performance.

I still feel dirty using TEXT though.



Can you add some details about which change, the performance loss you describe as awful (and the use case(s)), and the version where it happened?


It used to be that TEXT/BLOB data was stored outside of the table row in a separate area of the database. Any retrieval of this involved scanning to a separate spot on the disk.

In the days of spinny-disks this was a pretty huge penalty, you couldn't do linear reads to get the data, the heads would have to veer over to that other sector, read a bit of data, then skip back to read the next row. That was especially punishing as no amount of disk cache could help buffer against these reads that, to the operating system, seemed completely random.

MySQL moved the first X bytes of this data into the table row structure a while back (5.6? 5.7?) for performance reasons. It will only skip to the blob-data storage area if the data is longer than can fit in the size put in-row.


The opposite engineering philosophies of providing use cases to support theories, versus providing generic arguments are incompatible; I'm closing here.


You wanted an explanation, I gave you one, and now you're taking offence? Was I supposed to compose an 80-page whitepaper explaining the differences?

If you really cared you'd do your own homework.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: