SQL Ready | Базы Данных
10.6K subscribers
662 photos
28 videos
2 files
329 links
Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/sql_ready
加入频道
Как отследить, кто внес изменения в вашу таблицу?

Поговорим про снифферы трафика триггеры в SQL:

При внесении изменений в таблицу триггеры автоматически запускают выполнение разного рода и назначения функции. Рассмотрим, какие бывают типы триггеров и для каких событий.

В основном их используют для:

• Предобработка данных перед записью в БД.

Логирование изменений - кто внес изменения, добавил или удалил строчки.

• Оповещение другие модулей или сервисов при взаимодействии с таблицей.

• Реализация бизнес-логики.


В следующей части рассмотрим как создать исполняемую функцию для такого триггера!

➡️ SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🤝4👍3
🖥 Держите хорошую напоминалку с порядком работы операторов в запросе!

Эта шпаргалка поможет понять, в каком порядке вызываются SQL операторы и как правильно писать запросы, учитывая этот порядок.

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5🤝4
This media is not supported in your browser
VIEW IN TELEGRAM
Exercism — это платформа для изучения программирования через практические задания. Можно практиковаться на 70 различных языках, в том числе и на SQL.

📌 Ссылочка: exercism.org

➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
Почему неожиданно увеличилось время запроса?

Причин тому может быть много - неоптимизированный запрос, запрос вне индекса, устаревшая статистика таблицы и так далее. И точно определить причину помогут инструменты EXPLAIN и ANALYZE.

Предположим, у нас есть большая таблица, которая содержит около миллиона строк с разными книгами. Естественно у нас уже есть некластерный индекс по столбцу жанр — для быстрого поиска книг по жанрам, сделаем запрос:
SELECT book_title, author FROM books WHERE genre = 'Фантастика';


Но запрос возвращает результат не за 200 ожидаемых мс, а за 900 мс. Многовато, надо разбираться, проанализируем запрос:
EXPLAIN ANALYZE SELECT book_title, author FROM books WHERE genre = 'Фантастика';


Запрос EXPLAIN ANALYZE возвращает план запроса и время выполнения каждой операции в запросе:
                            QUERY PLAN
Seq Scan on books (cost=0.00..25000.00 rows=1000 width=100) (actual time=0.010..900.000 rows=500 loops=1)
Filter: (genre = 'Фантастика'::text)
Rows Removed by Filter: 999500
Planning Time: 0.200 ms
Execution Time: 900.500 ms
(4 rows)


Проанализируем план запроса и увидим, что планировщик запроса собирается обойти всю таблицу — Seq Scan on books, хотя должен использовать индекс по жанру. Это значит, планировщик не использует индекс из-за устаревшей статистики или из-за быстрого роста записей в таблице.

🔥 В следующей части расскажу, что делать для обновления статистики таблицы и как избежать таких ситуаций с помощью VACUUM ANALYZE.

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
Что же выведет консоль?
Anonymous Quiz
39%
A
31%
B
21%
C
9%
D
👍8🔥3
😁16🔥5👎1
😎 Нашел для вас незаконно полезную статью на Хабре, в которой автор делится своим опытом и хитростями в работе с БД и SQL.

В этой статье:
• Лайфхаки при работе с большими загрузками.
• В каком виде стоит загружать данные.
• Неочевидные советы при работе с индексами
.

🔊 Продолжить читать можешь на Habr!


➡️ SQL Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🖥 Разберем два похожих метода для работы с разными типами данных

Как мы помним из викторины, чтобы не столкнуться с неожиданным результатом запроса, важно явно указать типы данных при взаимодействии разных типов. Для этого существуют методы:

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

CONVERT — аналогичный метод преобразования данных, но предлагает расширенный функционал для форматирования, но поддерживается не всеми СУБД.

🔥 — если узнал новое
🤝 — если уже пользовался

➡️ SQL Ready | #метод
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Знали про StrataScratch? Это платформа по типу leetcode, но только для SQL

На этом сайте вы сможете выбрать задачи разного уровня и профиля, а также выбрать подходящую СУБД для практики.

📌 Ссылочка: stratascratch.com

➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3