Из некоторых предварительных испытаний кажется, что требования к хранилищу фактически одинаковы, используете ли вы INT (11) или DECIMAL (5,0).Я создал 2 таблицы со следующими запросами.
CREATE TABLE Table1(id INT(11));
CREATE TABLE Table2(id DECIMAL(5,0));
После вставки по одному значению в каждую таблицу и выполнения следующего для обеих таблиц я увидел, что DATA_LENGTH для каждой строки равно 7. Увеличение количества добавленных строкразмер любой таблицы на 7 байт.
SELECT * FROM INFORMATION_SCHEMA.tables where table_name='Table1';
Как и во всех подобных вещах, самый простой способ выяснить это - создать несколько таблиц и проверить их.В этом случае я бы просто использовал INT (11), так как он, кажется, не требует дополнительного пространства и, вероятно, требует меньше обработки, поскольку целые числа являются более примитивным типом данных, с которым процессор может иметь дело напрямую.При использовании DECIMAL MySQL должен преобразовывать числа в формат, который процессор может использовать на самом деле, возможно, в любом случае целое число в этом случае, и, вероятно, существуют какие-то издержки, связанные с переходом назад и вперед между форматами.