Комментарии 18
Ужасный язык, ужасные термины, непонятные объяснения, неверный и вводящий в заблуждение заголовок. Я так и не понял, чем heap-таблицы отличаются от каких-то других.
В заголовке и не обещали сравнение :)
Статья будет полезна примерами запросов для начала анализа существующей структуры.
Хотелось бы пометки, например для раздела с описанием "хедер пейджа" - взято ли это из документации или тоже можно получить запросом к метеданным.
А сравнение и не нужно. Но одно-два вводящих в тему предложения было бы очень кстати. Это же азы, блин.
Кроме того, статья про "возможности таблиц", а не про анализ их структуры.
Спасибо за обратную связь, я учту на будущее пожелание к тому, чтобы добавлять в статьи подводящие предложения.
Если вам вдруг интересна тема сравнений, то хочу пригласить Вас на мой следующий митап. На нём я как раз хочу рассказать про другие типы таблиц (включая какие свойства есть у них и что общего с Heap Tables):
Clustered Table (и как противовес Index Organized Table от Oracle)
Partitioned Table
Inherited Table
Logged / Unlogged Tables
Temporary Tables
Foreign Tables
Clustered Table
а оно разве есть в постгресе?
Partitioned Table
там внутри тот же heap будет
Inherited Table
ни разу не встречал. и там не тот же heap внутри?
Logged / Unlogged Tables
опять же это будет heap
Temporary Tables
и это тоже
Foreign Tables
ну вот единственная альтернатива heap table в postgres. но для очень ограниченного использования
в общем, уже заголовок статьи у меня вызвал недоумение.
хочу пригласить Вас на мой следующий митап
лучше статьёй )
Добрый вечер!
Спасибо за уточнения и спойлеры! :-)
Clustered Table - есть в PostgreSQL, но конечно это не тот Index Organised Table от Oracle (пока это так к сожалению).
Во всех таблицах (кроме Foreign) - та же самая парадигма пейджей страниц, можно сказать что Heap Table - это "ancestor" для всего остального (в том числе и например BTree индексов - тоже хочу об этом рассказать ;-).
Поддержу. Для преподавателя такая терминология просто недопустима, студенты же потом этими пейджами и экстеншенами будут оперировать.
Добрый день!
Спасибо за Ваш комментарий!
В трансляции митапа я старался говорить англоязычные термины (чтобы донести оригинал) без применения жаргонизмов. Первичный автоматический перевод выступления в печатный вид немного добавил огонька :-).
Можете поделиться ссылками на инструментарий и рекомендации для выполнения "бенчмарка, tps-метрики (transaction per second), latency"?
Добрый день! спасибо за Ваш вопрос!
Я использую инструментарий из "коробки", для PostgreSQL - это pg_bench с возможностью написания своих собственных пользовательских скриптов и работой с разными конфигурациями по нагрузочному тестированию (например количество параллельно работающих пользователей, объем транзакций, который необходимо достигнуть каждой сессией, объем времени в течении которого проводится benchmark и много всего остального). Инструмент представляет собой командную строку, но в моей работе это даже лучше, так как проще делать интеграцию в рамках CI/CD pipelines в части LoadBalancing тестов.
Посмотрите пожалуйста вот сюда - тут очень детально расписаны ключи для этого инструмента.
Но хотелось бы отменить, что таких инструментов для тестирования много и Вы даже можете попробовать написать самостоятельно свой, если у Вас есть дополнительные требования к тестам.
Спасибо и удачи Вам!
У слова page есть однозначный перевод -- страница. Зачем вы пишете "пейдж"? То же самое с таплом -- это кортеж.
Тем, кто желает разобраться со внутренностями PG, рекомендую книгу Егора Рогова "Postgres 14 изнутри" -- написано очень понятно и доступно, без жаргонизмов.
Добрый день!
Спасибо за Ваш комментарий!
Вы правы, дело в том что текст был выстроен после обработки видео выступления на митапе и я называл все термины англоязычными словами.
Но жаргонизмы сейчас очень сильно укоренились в ИТ жизни, и например тот же "кортеж" - это "строка" :-).
Спасибо Вам и за упоминание книги Егора Рогова, полностью поддерживаю!
Супер. Как я долго искал подобное объяснение!
Возможности Heap Table в PostgreSQL