Начался учебный год — у меня ещё нет пар, но в преддверии занятий делюсь полезной заметкой по БД. Часто вижу, как «на всякий случай» выбирают типы побольше — в итоге едим место, замедляем индексы и ловим баги.
❌ Антипаттерны, которые встречаю:
-
-
-
-
✅ Как делаю сам:
- Строки — по задаче:
- Деньги — только
- Булево —
- Даты/время —
- Автонумерация —
📌 Пример
-- Плохо
price FLOAT;
-- Хорошо
price NUMERIC(10,2);
⚡️ Итог: грамотный выбор типов = меньше места, быстрее запросы, меньше багов.
#БД #SQL #PostgreSQL #Оптимизация #Backend #DataEngineering
❌ Антипаттерны, которые встречаю:
-
VARCHAR(255) «для всего подряд», даже если код фиксированной длины (например, 10 символов).-
TEXT для email-адресов.-
BIGINT для счётчика, где максимум — тысяча записей.-
FLOAT для денег (теряется точность).✅ Как делаю сам:
- Строки — по задаче:
VARCHAR(254)`/`VARCHAR(320) для email (под стандарты), CHAR(2) для кода страны.- Деньги — только
NUMERIC(10,2) / DECIMAL(10,2) или целые «копейки/центы» в INT`/`BIGINT.- Булево —
BOOLEAN, а не INT.- Даты/время —
DATE / TIMESTAMP, не строка.- Автонумерация —
INT по умолчанию; BIGINT — только если реально ждёте > 2 млрд строк.📌 Пример
-- Плохо
price FLOAT;
-- Хорошо
price NUMERIC(10,2);
⚡️ Итог: грамотный выбор типов = меньше места, быстрее запросы, меньше багов.
#БД #SQL #PostgreSQL #Оптимизация #Backend #DataEngineering
🔥12👍3⚡1