SQL и Анализ данных
12.4K subscribers
752 photos
91 videos
4 files
765 links
Базы данных и всё, что с ними связано!

Сотрудничество: @haarrp

РКН № 6766085482
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
😁49💊4🔥2❤1👍1
❔ Вопрос с собеседования

Можно ли создать индекс на представление (VIEW)?

Ответ: Нет, на обычное представление индекс создать нельзя. VIEW — это виртуальная структура, которая не хранит данные сама по себе, а каждый раз формирует результат заново при обращении.

Индексы работают только с объектами, которые действительно содержат данные — это таблицы и материализованные представления (MATERIALIZED VIEW). Только они могут быть проиндексированы для ускорения запросов.


tags: #собеседование

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4😨4
💻 MVCC-7. Автоочистка

В статье разбирается, как autovacuum в PostgreSQL незаметно поддерживает производительность базы и что делать, если он перестаёт справляться.

Объясняется, как настроить параметры, отследить проблемы и избежать незаметного раздувания таблиц и падения скорости запросов.

⛓ Читать статью

tags: #статья #postgresql

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁50🔥14
❔ Вопрос с собеседования

Почему не рекомендуется применять функции к полям с индексом в WHERE?

Ответ: Потому что как только к колонке применяется функция (например, LOWER(name)), индекс перестаёт использоваться — СУБД больше не может воспользоваться порядком значений в индексе. В этом случае ей придётся просканировать всю таблицу построчно.

Чтобы сохранить эффективность индекса, лучше либо преобразовать данные заранее и хранить в отдельной колонке, либо использовать функциональный индекс, если это поддерживает СУБД (например, в PostgreSQL).


tags: #собеседование

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥1
💻 О векторных базах данных простым языком

В статье объясняется, как устроены векторные базы данных и почему они необходимы для работы с неструктурированными данными — такими как тексты, изображения и аудио.

Разбираются базовые принципы хранения и поиска по векторам, отличие от классических СУБД и реальные сценарии применения.

⛓ Читать статью

tags: #статья

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда твой код работает, но ты не знаешь как:

➡ SQL Community | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38😨13🔥3
❔ Вопрос с собеседования

Чем отличается реляционная СУБД от документо-ориентированной?

Ответ: Реляционная СУБД (например, PostgreSQL, MySQL) хранит данные в таблицах с чёткой схемой: каждый столбец имеет заданный тип, а связи между таблицами выражаются через внешние ключи и JOIN.

Документо-ориентированная СУБД (например, MongoDB) хранит данные в виде документов, обычно в формате JSON или BSON. У таких документов может быть разная структура даже внутри одной коллекции. Вместо связей между таблицами используется вложенность, а масштабирование и изменение схемы происходят гибче.


tags: #собеседование

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍8❤4
💻 MVCC-8. Заморозка

В заключительной статье цикла о многоверсионности в PostgreSQL рассматривается проблема переполнения 32-битного счетчика транзакций и механизм заморозки строк.

Автор объясняет, как система предотвращает сбои, помечая старые версии строк как «замороженные», и демонстрирует этот процесс на практических примерах.

⛓ Читать статью

tags: #статья

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3
❔ Вопрос с собеседования

Что такое колоночная СУБД?

Ответ: Колоночная СУБД — это база данных, где данные хранятся по столбцам, а не по строкам, как в классических (реляционных) СУБД. Такой способ хранения позволяет эффективно обрабатывать аналитические запросы, быстро выполнять агрегатные функции и считывать только нужные поля.

Например, ClickHouse — популярная колоночная СУБД, которая справляется с миллиардами строк при подсчётах вроде AVG(price) быстрее, чем PostgreSQL, потому что читает только один столбец, а не всю строку целиком.


tags: #собеседование

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍4❤2
💻 Шардированный кластер ClickHouse

В статье разбирается, как организовать шардированный кластер ClickHouse для работы с большими объёмами данных без потери скорости.

Показано, как настроить вставку, чтение и объединение данных между шардами, чтобы обеспечить стабильную и масштабируемую обработку запросов.

⛓ Читать статью

tags: #статья

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Когда полез разбираться в чужом проекте 😆

➡ SQL Community | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁49🔥4👀1
❔ Вопрос с собеседования

Зачем использовать CHECK-ограничения в SQL?

Ответ: CHECK-ограничения позволяют задать условие, которому должно соответствовать значение в столбце. Это способ встроенной валидации на уровне базы: например, можно запретить отрицательные числа в поле salary, указав CHECK (salary > 0).

tags: #собеседование

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3
💻 Лучшие книги по PostgreSQL

Полезная подборка бесплатных книг по PostgreSQL на русском языке для изучения СУБД от основ до архитектурных тонкостей:

▶️ Postgres: первое знакомство — брошюра для новичков с кратким введением в PostgreSQL, установку и начальную настройку.

▶️ PostgreSQL. Основы языка SQL — учебник по SQL с акцентом на особенности реализации в PostgreSQL.

▶️ PostgreSQL. Профессиональный SQL — продолжение предыдущей книги, охватывающее оконные функции, CTE, подзапросы LATERAL, пользовательские функции и процедуры.

▶️ PostgreSQL 17 изнутри — глубокий разбор внутреннего устройства СУБД: MVCC, WAL, блокировки, планировщик запросов, индексы и многое другое.

▶️ Мониторинг PostgreSQL — практическое руководство по инструментам мониторинга, интерпретации метрик и пониманию внутренних процессов СУБД.

▶️ Путеводитель по базам данных — обзор архитектурных принципов современных СУБД, алгоритмов и структур данных, используемых в них.

▶️ Основы технологий баз данных — учебное пособие, охватывающее теорию баз данных, методы и алгоритмы, применяемые при реализации СУБД, и особенности PostgreSQL.


Все книги доступны для скачивания в формате PDF — по ссылке.

tags: #полезное

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3❤‍🔥2
1С-ники, забираем лайфхак 😆

➡ SQL Community | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁46🔥4👍2
❔ Вопрос с собеседования

Что такое покрывающий индекс?

Ответ: Покрывающий индекс — это такой индекс, который содержит все столбцы, необходимые для выполнения запроса.

Если запрос использует только поля из этого индекса (в SELECT, WHERE, ORDER BY), то СУБД может выполнить его целиком по индексу, без обращения к основной таблице.

Это ускоряет запрос, потому что не нужно читать строки из таблицы — достаточно данных в структуре индекса.


tags: #собеседование

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥7👍4
💻 «Жизнь» на PostgreSQL

А вы знали, что PostgreSQL можно использовать для создания игры «Жизьи» Джона Конвея — прямо на SQL-запросах без единой строчки кода на С++ или Python?

В статье автор показал, как с помощью SQL-запросов можно моделировать поведение клеточного автомата, используя таблицы и операции объединения данных.

⛓ Читать статью

tags: #статья

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤4👍3😁2
Вот оно позитивное мышление

➡ SQL Community | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁52🔥8❤6👏3
❔ Вопрос с собеседования

Можно ли использовать JOIN без ON?

Ответ: Да, но не всегда это корректно. Без ON можно использовать: CROSS JOIN, который создаёт декартово произведение строк из таблиц, и NATURAL JOIN, который автоматически соединяет таблицы по всем столбцам с одинаковыми именами.

В остальных случаях (например, INNER JOIN, LEFT JOIN) отсутствие ON приведёт либо к синтаксической ошибке, либо к неожиданному результату — особенно если база интерпретирует это как CROSS JOIN. Поэтому чаще всего ON обязателен.


tags: #собеседование

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤4🔥2
💻 Выбор индексов в базах данных для highload-систем

В статье разбираются типы индексов в реляционных и NoSQL базах данных, включая B-Tree, GIN, GiST, BRIN, а также индексы в MongoDB и Cassandra.

Автор объясняет, как выбирать индекс под конкретный запрос, избегать избыточности и анализировать их эффективность с помощью EXPLAIN и статистики.

⛓ Читать статью

tags: #статья

➡ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2❤1