There are two major kinds of columns in your table, prefixed and derived.
Prefixed columns come from datasets. The memory for these columns is stored within the datasets themselves. The tables keep track of some metadata which takes up at most 8 bytes per set of prefixed columns.
Derived columns are created by the user. These are packed within the tables themselves. The memory is closely tied with the actual value of the data. You can expect 8 bytes for numeric fields and 8 + string length for strings