SQL и Анализ данных
12.7K subscribers
679 photos
68 videos
3 files
693 links
Базы данных и всё, что с ними связано!

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

РКН № 6766085482
Download Telegram
💻 PostgreSQL Antipatterns: создаем JSON из строки

В статье показано, как собирать JSON в PostgreSQL без лишних преобразований, чтобы ускорить выполнение запросов.

Объясняется, почему популярные конструкции вроде to_json(json_build_object(...)) могут мешать производительности и как заменить их более эффективными способами.

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

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1
Вопрос с собеседования

Чем функция отличается от хранимой процедуры?

Ответ: Функция всегда возвращает значение и используется прямо в запросах (SELECT, WHERE). Она не может изменять данные и не имеет выходных параметров.

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

Функции — для вычислений, процедуры — для сложной логики и операций с данными.


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

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84👀3🔥2
💻 Регулярные выражения в SQL

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

Автор показывает, как находить сложные шаблоны, валидировать электронные адреса, стандартизировать номера телефонов и анализировать логи с помощью REGEXP_LIKE и REGEXP_REPLACE.

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

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥5👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
21😁16👍2🔥2
Вопрос с собеседования

Что такое batch в SQL?

Ответ: Batch в SQL — это способ отправить несколько запросов за один сетевой вызов к базе данных.

Вместо того чтобы отправлять каждый INSERT, UPDATE или DELETE по отдельности, их объединяют в пакет, чтобы уменьшить задержки и ускорить обработку больших объёмов данных.

Batch повышает производительность при массовых операциях, особенно в JDBC и ORM.


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

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🔥3
💻 Как обновить PostgreSQL и не потерять данные?

В статье рассказывается, как обновить кластер PostgreSQL с версии 13 до 16 с минимальным простоем.

Автор подробно объясняет каждый шаг, включая создание реплики, настройку логической репликации и использование pg_upgrade.

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

tags: #статья

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

Как в PostgreSQL сравнить производительность двух индексов?

Ответ: Использовать EXPLAIN ANALYZE на одинаковых запросах и сравнить размер, план выполнения и время запроса.

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

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥3👍1
💻 SQL SquidGame

SQL SquidGame — это интерактивный тренажёр, в котором освоение SQL превращается в серию испытаний в стиле «Игры в кальмара»: чтобы пройти дальше, нужно правильно написать SQL-запрос, иначе — выбываешь.

В игре нужно пройти 9 уровней, решая задачи по анализу данных, которые становятся сложнее с каждым этапом. Если не справляетесь, на сайте есть 33 урока по SQL, охватывающих все важные темы для практического применения.

Ссылка на игру

tags: #полезное

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍169🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁37🔥2
Вопрос с собеседования

Чем MariaDB отличается от MySQL?

Ответ: MariaDB — это форк (ответвление) MySQL, созданный после того, как MySQL купила компания Oracle.

MariaDB полностью совместима с MySQL на уровне запросов, но развивается отдельно: она добавляет больше новых функций быстрее (например, альтернативные движки хранения), а также остаётся полностью открытой.

Ещё MariaDB часто включает улучшения в производительности и масштабировании, которые в MySQL появляются позже или не появляются вообще.


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

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍155😁2🔥1
💻 Чем отличается пессимистическая и оптимистическая блокировка в MySQL?

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

Автор показывает, как выбрать подходящий механизм для разных задач и избежать ошибок при параллельной работе с базой.

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

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁36💯52🔥2
Вопрос с собеседования

Каковы плюсы и минусы реляционных баз данных?

Плюсы:

▶️ Чёткая и строгая структура данных (таблицы, типы, связи);

▶️ Поддержка мощного языка запросов SQL для сложных выборок и обработки данных;

▶️ Надёжность за счёт транзакций (ACID-свойства), ограничений целостности (FOREIGN KEY, UNIQUE, CHECK) и строгих правил.

Минусы:

▶️ Менее гибкие при изменениях схемы: добавление новых колонок, связей или нормализация требуют осторожных изменений структуры;

▶️ Горизонтальное масштабирование (шардинг) сложнее, чем у NoSQL-баз;

▶️ При сложных связях и большом объёме таблиц возможны накладные расходы на JOIN-операции и поддержку индексов.

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

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥147👍1
💻 JDBC: как Java научилась дружить с базами данных?

В статье объясняется, как работает JDBC — стандартный способ подключения Java-приложений к базам данных.

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

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

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52
Please open Telegram to view this post
VIEW IN TELEGRAM
😭32😁10😎3
Вопрос с собеседования

Почему отношение «многие-ко-многим» реализуется через промежуточную таблицу?

Ответ: Отношение «многие-ко-многим» невозможно реализовать через прямую связь двух таблиц, так как это приведёт к нарушению нормализации: в одной из таблиц пришлось бы дублировать записи или хранить списки значений, что недопустимо в реляционной модели.

Без промежуточной таблицы связь автоматически превращается в «один-ко-многим», где одна запись может ссылаться на множество записей, но обратная связь не поддерживается.

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

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

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥9👍7
💻 PostgreSQL Antipatterns: «вращаем» JSON

В статье рассматриваются антипаттерны использования JSON, особенно при преобразовании JSON-данных в таблицы.

Автор рассматривает распространенные ошибки, их решения и разбирает как правильно работать с JSON в SQL.

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

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40🔥4👍1
Вопрос с собеседования

Почему в реляционных базах данных не принято хранить несколько значений в одной ячейке?

Ответ: Технически это возможно (например, хранить список через запятую), но противоречит первой нормальной форме (1NF), которая требует, чтобы каждое поле содержало атомарное, неделимое значение.

Если в ячейке хранится сразу несколько значений, это затрудняет поиск, фильтрацию, нормальное использование индексов и связи между таблицами.

Поэтому в реляционном проектировании такой подход считается антипаттерном.


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

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥52