Неправильные типы данных в БД — тихий убийца производительности

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
10,053
Реакции
1,568
Credits
35,885
Неправильные типы данных в БД — тихий убийца производительности
Одна из самых частых ошибок — выбирать тип “на всякий случай побольше”.

Примеры антипаттернов:
- VARCHAR(255) для всего подряд, даже если поле — код из 10 символов.
- TEXT для email-адресов.
- BIGINT для счётчика, где максимум 1000 записей.
- FLOAT для денег (теряешь точность).

Как лучше:
- Размер строки под задачу: VARCHAR(50) для email, CHAR(2) для кода страны.
- Для денег → NUMERIC(10,2) или DECIMAL.
- Для булевых значений → BOOLEAN, а не INT.
- Для дат → DATE или TIMESTAMP, а не строка.

Пример:
SQL:
-- Плохо
price FLOAT;

-- Хорошо
price NUMERIC(10,2);
Итог: грамотный выбор типов = меньше места, быстрее запросы, меньше багов.