Комментарии 5
А каков смысл в вашем эксперименте на update, если в конце вы даже не сделали ни какого вывода по этой части?
Использование типов данных с часовыми поясами требует дополнительных ресурсов в обеих системах
Пожалуйста, не вводите в заблуждение. У PostgreSQL одинаковый размер данных у timestamp и у timestamptz — ровно 8 байт (64 бита):
# SELECT oid, typname, typlen FROM pg_type WHERE oid in ('timestamp'::regtype, 'timestamptz'::regtype)
oid | typname | typlen
------+-------------+--------
1114 | timestamp | 8
1184 | timestamptz | 8
(2 rows)
=---
Firebird более эффективно хранит данные типа char и varchar, особенно при больших размерах полей (200 символов) - 2604.25 MB против 2728 MB в PostgreSQL
Более эффективно — это аж на 4.5%?
=---
Эти различия следует учитывать при проектировании баз данных
Как это надо учитывать? Выбирать при проектировании другую БД? Не по функциональности, не по обслуживаемости, а просто по тому, как СУБД хранит колонки CHAR(200)?
Посмотрите, пожалуйста, как люди делают статьи про учёт хранения в БД, что можно учитывать при проектировании:
Хранение пустых (NULL) значений в таблицах PostgreSQL
https://habr.com/ru/articles/890718/
=---
Для сравнения выберем следующие типы данных:
Выбирать для хранения надо те типы, которые подходят под доменную область, а не заполнять таблицы колонками с одними и теми же типами данных (что, кстати, в реальной жизни — редкость).
=---
P.S.: (на будущее) всю SQL-ную сгенерированную портянку лучше запрятать под раскрывающиеся блоки (Спойлер):
https://habr.com/ru/docs/help/markdown/
Мне кажется что при сравнении не учтено что у PostgreSQL есть еще журнал транзакций который хранится вне базы, и растет при работе с базой, что вызывает необходимость его потом как-то урезать. У Firebird отдельного журнала нет, эта инфа пишется в самой базе.
Сравнение заполнения данными баз данных Firebird 5 и PostgreSQL 17