On Thu, Oct 29, 2015 at 10:59 AM, Jason H <jhihn at gmx.com> wrote: > > The documentation does not go into the detail of the engine is able to > skip the reading of unneeded interior rows. In theory, it can because the > length is contained in the header. So instead of read() on every column in > the row, it can call seek() if it knows it doesn't need that column. My > question is now simply: does it seek past unneeded columns, or does > everything get send through read once data has started being read? It's a > minor detail with bug performance implications.
Everything is page-structured, so you can't skip anything smaller than a page (even if you could, there may be no benefit, since seeks cost way more than reads). Rows which are larger than fit in a page use a singly-linked list of overflow pages, so you can't get to page N+1 without reading page N first. -scott