MySQL - Are column names stored in each row in full length? MySQL: I'm not finding this in the manual or in google, but do column names get stored in full in each row?

I suppose that this might change depending on compression, but leaving compression aside, suppose I have a normal InnoDB table with a column's name "really_long_name_for_a_column". Will this name (29 bytes) be stored in each row for every row in the table? Or is a shortened version recorded for each row or nothing at all?

Thanks!
The answer is of course an emphatic no. It would be a very silly thing to store them in each and every - of the possibly billion - rows.

Column names are metadata and are stored only once, in the system tables.

The format of the rows and how they know where a column ends and the next starts depend on the engine of the table. It differs between InnoDB, MyISAM, Memory, etc. Check the respective documentation for more details.

Having said that, nothing prevents you from writing - and using - an engine of your own that stores the column names in each and every row. It would still be a very silly thing to do. You should also consider where the names will be kept when the table has 0 rows, eg. immediatey after creation of the table or after it has been truncated.