У меня есть приложение, которое использует таблицу PostgreSQL. Таблица очень большая (миллиарды строк) и имеет столбец, который является целым числом.
integer
Может быть до 6 цифр, т.е. 0-999,999, не негативов.
Я думал об изменении его, чтобы быть numeric(6,0)
.
Это было бы хорошей идеей? Займет numeric(6,0)
меньше байтов? Как насчет производительности (к этой таблице часто обращаются)?
postgresql
Ofiris
источник
источник
numeric
столбца наint
?Окончательный ответ - нет на все ваши вопросы. Целое число - это всегда путь для всего, для чего вы можете его использовать. (Деньги, например)
Подумай об этом на минуту. Когда ядро базы данных встречает целое число, оно обрабатывает его очень эффективно, потому что нет особой интерпретации для него. Это целое число. Числовой тип ведет себя больше как строка. Сначала двигатель должен выяснить, какие части находятся до и после десятичной точки, и массировать их соответствующим образом для выполнения числовых операций.
Использование целого числа всегда будет более эффективным, чем числовое, хотя числовые типы часто более удобны для человека.
источник
NUMERIC
. Однако, масштабированное целое число лучше, чем использование значения с плавающей запятой для денег.