Вычисление размера таблицы InnoDB далеко не так просто. Но вот быстрый и грязный способ оценить. Вы получили 24; теперь умножьте это на 2 или 3. То есть, грубая оценка размера строки будет 48-72 байта.
Что касается NULL или нет, то это будет иметь разницу только в 4 байта на INT
, если это имеет значение .
Обратите внимание, что возможны значения 4 ROW_FORMAT
. Это добавляет трудно подсчитать морщины в расчетах. TEXT
и PARTITION
также вносят путаницу в оценку размера.
Если вас беспокоит пространство, подумайте, действительно ли вам нужен INT
, который занимает 4 байта и имеет ограничение в 2 миллиарда. Возможно, MEDIUMINT UNSIGNED
(3 байта, макс. 16M) будет лучше - особенно если учесть, что экономит 1 байт для каждого вхождения. У вас будет как минимум 3 вхождения - столбец в tbl_IndexDemo
, столбец в другой таблице и INDEX
, неявно созданный FK.