Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: ctid, system column, row identifier, postgresql, storage

Что означает CTID в PostgreSQL?

Этот вопрос проверяет знание внутреннего механизма PostgreSQL для идентификации строк в таблице.

Короткий ответ

CTID — это системная колонка в PostgreSQL, которая содержит физический идентификатор строки (номер страницы и строки внутри страницы). Она полезна для поиска строк на уровне хранения данных, но не является постоянной и изменяется при обновлении или удалении строки.

Длинный ответ

CTID (Current Transaction Identifier) используется PostgreSQL для отслеживания местоположения строк в таблице. Она имеет формат (page, row) и показывает:

  • Page — номер страницы, на которой хранится строка.

  • Row — позицию строки на странице.

CTID может использоваться для:

  • Диагностики и отладки.

  • Удаления дубликатов строк.

  • Оптимизации запросов.

Пример:

SELECT ctid, * FROM employees;

Результат будет содержать колонку ctid с адресами строк.
Однако CTID изменяется, если строка обновляется или перемещается. Это делает его неподходящим для использования в качестве постоянного идентификатора.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#ctid

#system column

#row identifier

#postgresql

#storage

Подпишись на Python Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.