LINUX.ORG.RU

История изменений

Исправление borisych, (текущая версия) :

Ну и разработчики Postgres не скрывают ничего в документации, то есть, нет такого, чтобы в документации было заявлено про глобальный индекс, а в реальности его нет или он не работает.

я в документации как-то не смог найти утверждения, что фича абсолютно бесполезна и не стоит ее использовать. К слову, в документации также нет текста из: https://wiki.postgresql.org/wiki/Don't_Do_This

вообще очень ограниченный механизм

хорошо, продолжаем про секционирование. Вопрос: сколько строк с колонками типа bytea можно хранить в таблице? Ответ: значительно меньше чем хотелось бы, bytea хранится в TOAST, у которого идентификатором служит oid, он же unsigned int, т.е. даже в теории ограничение сверху - 4 миллиарда, что, нужно сказать, даже 10 лет назад было не чтобы очень много, но (!) мы же в базу не только вставляем строки, но еще и обновляем и удаляем их, и, о боже, иногда откатываем транзакции, поэтому счетчик TOAST расходуется значительно быстрее чем того хотелось бы. Здесь непонятно, что мешает разработчикам переделать этот oid с unsigned int на unsigned long, однако конкретно в этой ситуации в определенных случаях использование секционирования несомненно бы помогло (исключительно как maintenance история, как принято в других СУБД), но, увы, не работает как того хотелось бы. Таким образом, можно смело утверждать, что хранение в этой СУБД данных типа blob (да и вообще длинных строк, а сейчас пошла мода JSON хранить), довольно сильно ограничено, другими словами не работает (и не нужно здесь про «вы неправильно используете нашу распрекрасную СУБД»).

Кстати, про JSON: а оно умеет делать patch, как того ожидает пользователь этой распрекрасной СУБД или-таки полностью его перезаписывает не смотря на конкурирующие изменения? А то, помнится все несказанно радовались, что постгрес работает быстрее монги с JSON, а вот про обыденные вещи как-то забыли.

А как в постгресе обстоят дела и Direct IO и Async IO? Все также из кешей ФС данные дергает, да? Вот в MySQL, внезапно, оно-таки есть: https://dev.mysql.com/doc/refman/8.0/en/innodb-linux-native-aio.html

Исходная версия borisych, :

Ну и разработчики Postgres не скрывают ничего в документации, то есть, нет такого, чтобы в документации было заявлено про глобальный индекс, а в реальности его нет или он не работает.

я в документации как-то не смог найти утверждения, что фича абсолютно бесполезна и не стоит ее использовать. К слову, в документации также нет текста из: https://wiki.postgresql.org/wiki/Don't_Do_This

вообще очень ограниченный механизм

хорошо, продолжаем про секционирование. Вопрос: сколько строк с колонками типа bytea можно хранить в таблице? Ответ: значительно меньше чем хотелось бы, bytea хранится в TOAST, у которого идентификатором служит oid, он же unsigned int, т.е. даже в теории ограничение сверху - 4 миллиарда, что, нужно сказать, даже 10 лет назад было не чтобы очень много, но (!) мы же в базу не только вставляем строки, но еще и обновляем и удаляем их, и, о боже, иногда откатываем транзакции, поэтому счетчик TOAST расходуется значительно быстрее чем того хотелось бы. Здесь непонятно, что мешает разработчикам переделать этот oid с unsigned int на unsigned long, однако конкретно в этой ситуации в определенных случаях использование секционирования несомненно бы помогло (исключительно как maintenance история, как принято в других СУБД), но, увы, не работает как того хотелось бы. Таким образом, можно смело утверждать, что хранение в этой СУБД данных типа blob (да и вообще длинных строк, а сейчас пошла мода JSON хранить), довольно сильно ограничено, другими словами не работает (и не нужно здесь про «вы неправильно используете нашу распрекрасную СУБД»).

Кстати, про JSON: а оно умеет делать patch, как того ожидает пользователь этой распрекрасной СУБД или-таки полностью его перезаписывает не смотря на конкурирующие изменения? А то, помнится все несказанно радовались, что постгрес работает быстрее монги с JSON, а вот про обыденные вещи как-то забыли.