PostgreSQL должен вовремя замораживать старые версии строк, чтобы циклические 32-битные XID не нарушили определение видимости. Anti-wraparound VACUUM — часть защиты от этой проблемы, а не просто уборка мусора.
sqlite3 — модуль стандартной библиотеки Python для работы с SQLite через интерфейс DB-API. SQLite выполняется в процессе приложения и хранит БД в файле либо памяти, без отдельного сервера.
EXPLAIN показывает выбранный план: порядок операций, типы сканирования, соединения и оценки стоимости и строк. EXPLAIN ANALYZE дополнительно выполняет запрос и показывает фактическую работу, поэтому требует осторожности.
Оптимистическая и пессимистическая блокировки — стратегии согласования, а row/table locks — механизмы БД. Оптимистический UPDATE с проверкой версии тоже использует физические блокировки при записи.
Более зрелый вариант — атомарное условное списание в PostgreSQL с проверкой результата. Оно защищает общий баланс между процессами и экземплярами приложения, а не только внутри одного event loop.
Уникальные строки результата получают через SELECT DISTINCT. Если выбирается несколько колонок, уникальность определяется их сочетанием, а не каждой колонкой отдельно.
Индекс первичного ключа иногда помогает через index-only scan, если он меньше таблицы и видимость строк можно проверить без чтения heap. Но точный COUNT(*) всё равно требует просмотра данных, а не O(1) счётчика.
Redis использует RESP, MongoDB — собственный бинарный wire protocol с BSON, Elasticsearch для клиентского API обычно использует HTTP(S) и JSON. Это прикладные протоколы, а не разновидности TCP.
Ответ должен опираться на ваш реальный опыт в названной компании: ORM или Core, синхронный либо асинхронный доступ, типичные запросы и управление транзакциями. По вопросу нельзя установить чужие обязанности.
Индекс выбирают под запросы: B-tree для равенства и сортировки, подходящий индекс для префикса, trigram для подстроки или нечёткого поиска. Для небольшой таблицы последовательное чтение может быть быстрее.
Функции PostgreSQL классифицируют по языку, результату и свойствам выполнения: SQL/PL/pgSQL, скалярные/наборные, IMMUTABLE/STABLE/VOLATILE. Агрегатные, оконные и триггерные функции имеют отдельные контракты.
Cache penetration — повторные промахи кеша для данных, которых нет и в БД. Bloom filter позволяет быстро отклонить заведомо отсутствующие ключи, но допускает ложноположительные ответы.