В PostgreSQL индексы не содержат ссылку на кластерный индекс или первичный ключ, как в MySQL или MS SQL Server. Вместо этого, каждый индекс в PostgreSQL содержит указатель на строку таблицы на диске, называемый TID (tuple ID). TID состоит из двух компонент: номера блока и номера строки в блоке. Номер блока указывает на физическое расположение блока на диске, а номер строки - на конкретную строку в этом блоке.
Когда выполняется запрос, использующий индекс, PostgreSQL использует TID, чтобы найти соответствующую строку в таблице на диске. Это позволяет получить быстрый доступ к данным, поскольку индекс позволяет быстро найти нужную строку без необходимости сканировать всю таблицу.
Важно отметить, что если строка таблицы переносится на другой блок из-за обновления или вставки новых строк, то TID также будет изменяться, что может повлиять на производительность запросов, использующих индекс. Однако PostgreSQL обеспечивает автоматическую обновление индексов после изменения данных в таблицах, чтобы гарантировать целостность индексов и устранить такие проблемы.
#postgres #database #db #psql
Когда выполняется запрос, использующий индекс, PostgreSQL использует TID, чтобы найти соответствующую строку в таблице на диске. Это позволяет получить быстрый доступ к данным, поскольку индекс позволяет быстро найти нужную строку без необходимости сканировать всю таблицу.
Важно отметить, что если строка таблицы переносится на другой блок из-за обновления или вставки новых строк, то TID также будет изменяться, что может повлиять на производительность запросов, использующих индекс. Однако PostgreSQL обеспечивает автоматическую обновление индексов после изменения данных в таблицах, чтобы гарантировать целостность индексов и устранить такие проблемы.
#postgres #database #db #psql
👍3
PgAdmin - это бесплатное, мощное и популярное программное обеспечение администрирования PostgreSQL, которое позволяет управлять базами данных PostgreSQL и выполнить множество рутинных задач. Он доступен для Windows, Mac и Linux и является одним из самых широко используемых инструментов для управления базами данных PostgreSQL.
Основные возможности pgAdmin:
1️⃣ Создание, удаление и модификация таблиц в базе данных, создание ограничений на данные.
2️⃣ Создание и редактирование запросов SQL, выполняемых на сервере.
3️⃣ Просмотр и изменение данных в таблицах.
4️⃣ Управление пользователями и группами пользователей.
5️⃣ Поддержка нескольких серверов и свободный доступ к каждому из них.
6️⃣ Работа в графическом режиме, что делает работу с базой данных более удобной.
Без pgAdmin управление базой данных PostgreSQL будет гораздо более сложным. Программа предоставляет пользователю более простой способ доступа и управления информацией с помощью большого количества инструментов для работы с PostgreSQL. Он также позволяет пользователям работать с несколькими серверами одновременно, что облегчает их работу, уменьшает временные затраты и повышает производительность.
Кроме того, бесплатность, расширяемость и поддерживаемость инструментария делает его очень популярным среди разработчиков и системных администраторов. С его помощью можно легко создавать и настраивать базы данных, выполнять запросы, создавать пользователей, просматривать статистику базы данных и многое другое.
В заключение, pgAdmin - это эффективный и важный инструмент для управления базами данных PostgreSQL. Если вы работаете с PostgreSQL, то pgAdmin - это то, что вам нужно, чтобы сделать свою работу быстрее и проще.
#db #postgresql #postgres #pgadmin
Основные возможности pgAdmin:
Без pgAdmin управление базой данных PostgreSQL будет гораздо более сложным. Программа предоставляет пользователю более простой способ доступа и управления информацией с помощью большого количества инструментов для работы с PostgreSQL. Он также позволяет пользователям работать с несколькими серверами одновременно, что облегчает их работу, уменьшает временные затраты и повышает производительность.
Кроме того, бесплатность, расширяемость и поддерживаемость инструментария делает его очень популярным среди разработчиков и системных администраторов. С его помощью можно легко создавать и настраивать базы данных, выполнять запросы, создавать пользователей, просматривать статистику базы данных и многое другое.
В заключение, pgAdmin - это эффективный и важный инструмент для управления базами данных PostgreSQL. Если вы работаете с PostgreSQL, то pgAdmin - это то, что вам нужно, чтобы сделать свою работу быстрее и проще.
#db #postgresql #postgres #pgadmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿1
SQL и хранилищам данных, полезные ссылки по теме:
🟡 PostgreSQL
🔘 Домашняя страница базы данных
🔘 Что такое PostgreSQL? (краткие сведения)
🔘 Документация к PostgreSQL 14.5 на русском языке
🔘 Курс молодого бойца PostgreSQL
🔘 Подборка статей
🔘 Язык SQL
🟢 Архитектура хранилищ данных
🔘 Хранилище данных: понятия
🔘 Архитектура хранилищ данных: традиционная и облачная
🔘 Что такое хранилище данных?
🔘 Публикации, рассказывающие о хранилищах данных, подборка Habr
🔘 Обзор гибких методологий проектирования DWH
🔘 Особенности построения хранилища данных на базе ClickHouse в Yandex Cloud
🔘 Создание Data Lake и Warehouse на GCP
#sql #postgres #dwh #clickhouse #datalake
#sql #postgres #dwh #clickhouse #datalake
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Скажем, тебе необходимо реализовать систему рассылки пуш-уведомлений на android-устройства клиентов. Ты пишешь сервис, который будет работать с FCM. Пишешь функции в своей БД, которые будут выдавать списки token-текст (да там много полей вообще).
Так вот, необходимо, чтобы такие ручки для разных модулей (бэкендов) лежали в отдельных схемах.
Предположим, что ты реализовал пункт выше, теперь твой сервис должен подключаться к БД и крутить свои запросы. Но под каким пользователем? Не будет же он бегать под postgres или admin?)
PostgreSQL — это мощная СУБД. Но и она не может быть универсальной. Не надо полагать, что всё делается штатными средствами PostgreSQL. Так-же не надо пробовать писать свои системы чего-либо.
Возьми за привычку в БД всегда хранить timestampTZ и когда-нибудь Тебе скажут большое спасибо за это.
Пользуйся
pg_stat_statements
Так-же рекомендую сразу установить расширения для мониторинга запросов (например
pg_stat_statements
)PostgreSQL всегда временные таблицы кладёт на диск, это занимает много времени. Используй табличные выражения. Да и лучше всё писать одним оператором.
Да да, партиции — это круто. Но вот их использовать я бы рекомендовал только в некоторых случаях
Да, когда планировщик не так представляет выхлоп — у тебя могут получиться очень медленные запросы.
Наверное сразу стоит добавить и тот пункт, что не надо хранить в TOAST, например json/text с дефолтным параметром хранения, аналитические данные.
#postgres
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
#postgres #db #s3
Please open Telegram to view this post
VIEW IN TELEGRAM
DuckDB: Простота работы с CSV файлами
Традиционные базы данных требуют предварительно определённой схемы таблицы и не поддерживают работу с CSV файлами без предварительной обработки. DuckDB решает эту проблему, позволяя напрямую считывать файлы CSV. Это устраняет необходимость в явном создании таблицы и загрузке данных, значительно упрощая процесс работы с данными.
#db #postgres #duckdb
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6
pg_cron - планировщик заданий на основе cron для PostgreSQL (10 и выше), который запускается внутри БД в качестве расширения. Он использует тот же синтаксис, что и обычный cron, но позволяет планировать команды PostgreSQL непосредственно из БД.
В pg_cron можно использовать "$" для указания последнего дня месяца.
Пример использования:
#cron #sql #postgres #postgresql
В pg_cron можно использовать "$" для указания последнего дня месяца.
Пример использования:
-- Vacuum every day at 3:00am (GMT)
SELECT cron.schedule('nightly-vacuum', '0 3 * * *', 'VACUUM');
schedule
----------
43
-- Stop scheduling jobs
SELECT cron.unschedule('nightly-vacuum' );
unschedule
------------
t
#cron #sql #postgres #postgresql
GitHub
GitHub - citusdata/pg_cron: Run periodic jobs in PostgreSQL
Run periodic jobs in PostgreSQL. Contribute to citusdata/pg_cron development by creating an account on GitHub.
PostgreSQL 16 изнутри
Разработчик СУБД Postgres Professional выпустил новую книгу «PostgreSQL 16 изнутри». Электронная версия находится в свободном доступе . Автор книги — Егор Рогов, директор по развитию образовательных программ Postgres Professional.
Первое издание этой книги, основанной на 14-й версии PostgreSQL, вышло в марте 2022 года и обновлено до версии 15. В связи с большим читательским интересом компания перевела книгу на английский язык. Позже она стала самым популярным тематическим изданием 2023 года по версии Postgres Weekly и была включена в список профессиональной литературы на официальном сайте сообщества PostgreSQL.
В текущем издании книги «PostgreSQL 16 изнутри» учтены замечания читателей, исправлены опечатки и отражены изменения, произошедшие в версии PostgreSQL 16. Postgres Professional также обновил локализованную документацию для PostgreSQL 16.
#db #sql #postgres #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - electric-sql/pglite: Embeddable Postgres with real-time, reactive bindings.
Embeddable Postgres with real-time, reactive bindings. - electric-sql/pglite
PGlite — это революционная WASM-сборка PostgreSQL, которая позволяет запускать базу данных прямо в браузере без необходимости использования виртуальной машины Linux.
Теперь PostgreSQL компилируется в WebAssembly, что открывает возможность работы с эфемерными БД в памяти или на диске через IndexedDB.
В сочетании с Electric, PGLite становится идеальным инструментом для создания реактивных local-first приложений, где основой служит Postgres.
#WASM #FrontendMagic #pg #pglite #db #postgres #databases
Теперь PostgreSQL компилируется в WebAssembly, что открывает возможность работы с эфемерными БД в памяти или на диске через IndexedDB.
В сочетании с Electric, PGLite становится идеальным инструментом для создания реактивных local-first приложений, где основой служит Postgres.
#WASM #FrontendMagic #pg #pglite #db #postgres #databases
SQLZoo — живой онлайн-тренажёр с задачами от простых SELECT до продвинутых оконных функций. Если хочешь свободно «разговаривать» с базами данных, тебе это нужно и будет полезным изучить каждый интерактивный урок.
1️⃣ Почему именно SQLZoo?
Платформа комбинирует теорию и практику в одном окне. Ты сразу видишь результат запроса, исправляешь ошибки на месте и не тратишь время на настройку окружения.
2️⃣ Как учиться быстрее?
🟡 Проходи уроки подряд: Basics 🔜 Joins 🔜 Aggregates 🔜 Windows.
🟡 Фиксируй новые приёмы в конспект: GROUP BY, HAVING, WITH RECURSIVE.
🟡 Старайся решить каждое задание без подсказок, а затем сравни свой запрос с эталоном.
3️⃣ Что получишь на выходе?
За пару вечеров наберёшься практики, которой хватает, чтобы читать чужие SQL-скрипты без боли и писать свои, не заглядывая в подсказки.
Чтобы SQL больше не был тёмным лесом - залетай сюда➡️ sqlzoo.net
#sql #de #postgres
Платформа комбинирует теорию и практику в одном окне. Ты сразу видишь результат запроса, исправляешь ошибки на месте и не тратишь время на настройку окружения.
За пару вечеров наберёшься практики, которой хватает, чтобы читать чужие SQL-скрипты без боли и писать свои, не заглядывая в подсказки.
Чтобы SQL больше не был тёмным лесом - залетай сюда
#sql #de #postgres
Please open Telegram to view this post
VIEW IN TELEGRAM