Database - Lazy loading per column?

Reading the documentation it sounds like if you use the search option for a database the rows will be loaded in a ‘lazy’ way. My rows will be quite memory expensive and I was wondering if I should create two tables, one for the metadata and one for the actual object. My main question is this, am I right in thinking that the search iterator will load the entire row and that it is not possible to make the search iterator only read one column of a row?

In other words;

for row in app_tables.db.search(id=id):
  print(row)

will load the same amount of data as using code like;

result = [row['some_column'] for row in app_tables.db.search(id=id)

IIRC, Media columns are normally loaded lazily. To get lazy loading on other columns, see “Explicit cache control” in