В каком типе данных хранить amount (сумму денег) в PostgreSQL?
Для денег в PostgreSQL обычно используют bigint в минимальных единицах либо numeric(p,s) с явной точностью. Float и double precision не подходят для точного денежного учёта.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Для денег в PostgreSQL обычно используют bigint в минимальных единицах либо numeric(p,s) с явной точностью. Float и double precision не подходят для точного денежного учёта.
Читать ответНазовите фактические БД и брокеры, связав каждый с задачей: транзакционные данные, кэш, аналитика, события или очереди работы.
Читать ответИндексы решают только часть проблем. Измерьте ожидания, CPU, I/O, блокировки, число соединений и объём запросов, прежде чем выбирать масштабирование.
Читать ответИндекс хранит дополнительную структуру для ускорения подходящих обращений. В PostgreSQL выбор типа и колонок зависит от запросов, а каждый индекс имеет цену записи и хранения.
Читать ответЗагружайте данные управляемыми порциями с checkpoint, контролем нагрузки и безопасным повтором. Размер партии выбирайте по блокировкам, WAL, лагу реплик и времени запроса.
Читать ответОпишите PostgreSQL как источник истины и Redis как кэш, если именно так было в проекте. Важны срок жизни, инвалидирование и безопасное поведение при отказе.
Читать ответsql.DB — долгоживущий конкурентно используемый пул с внутренним состоянием и синхронизацией. Копировать его по значению нельзя; передавайте *sql.DB.
Читать ответВ типовом запросе сначала формируются строки и фильтры внутреннего SELECT, затем вычисляется DENSE_RANK, а внешний запрос фильтрует готовый ранг. Физический план может отличаться.
Читать ответНазовите реально применённый уровень изоляции и способ защиты инвариантов: условные обновления, row locks или serializable. Конфликты требуют контролируемого повторения транзакции.
Читать ответВыберите реальную сложность: план медленного запроса, конкурентные изменения, миграция или восстановление. Покажите диагностику, решение и проверку результата.
Читать ответУточните, о какой таблице, базе и моменте времени речь, затем назовите достоверное число или порядок величины. Объём строк не равен объёму данных.
Читать ответПервый фрагмент делает пять вызовов для ID 42 и содержит data race на dbHits++. Второй при корректно объявленных once и user выполнит загрузку один раз.
Читать ответ