Я использую MySQL, все мои таблицы используют движок InnoDB. У меня есть несколько столбцов, объявленных как DECIMAL (38, 0), и они широко используются. Согласно документации MySQL (http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html), 38-значное значение требует 17 байтов (38 = 4 * 9 + 2; 4 * 4 + 1 = 17). Хорошо.
Но значит ли это, что любое значение, хранящееся в этом столбце, займет 17 байт? Например, для значения 432 - будет ли оно занимать только 4 байта (я очень на это надеюсь ...) или оно все равно будет занимать 17 байтов?
Наконец, я знаю, что в Oracle занимаемый размер зависит от фактических сохраненных значений. Но так ли это оптимизировано и в MySQL?