sql_tg | Unsorted

Telegram-канал sql_tg - SQL и БД Learning

10287

№ 5060218708 Изучаем SQL с нуля По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning

Subscribe to a channel

SQL и БД Learning

MySQL ускорение SQL запросов

Ускорение SQL запросов в MySQL м
ожет быть достигнуто следующими способами:

1. Индексы: использование индексов может ускорить поиск и сортировку данных в ваших таблицах.

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

3. Оптимизация запросов: проверьте ваши запросы на оптимизацию, убедитесь, что вы используете правильные операторы JOIN и индексы для улучшения производительности.

4. Кэширование данных: использование кэширования данных может ускорить выполнение повторяющихся запросов.

5. Использование представлений: использование представлений может упростить запросы и улучшить их читаемость.

6. Ограничение размера выборки: используйте оператор LIMIT, чтобы выбрать только необходимые данные, это уменьшит время выполнения запроса.

7. Минимизация дубликатов данных: дубликаты данных могут увеличить размер таблицы и уменьшить производительность запросов. Удаляйте дубликаты данных или используйте оптимизированные структуры данных, такие как нормализованные таблицы.

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

9. Мониторинг производительности: важен для определения причин низкой производительности и для поиска способов ее улучшения. Он включает в себя слежение за показателями, такими как загруженность процессора, использование памяти, время ответа на запросы и т. д.

10. Использование индексов: используйте индексы, чтобы ускорить поиск данных в таблице. Обеспечьте, чтобы ваши индексы были актуальными и эффективными.

11. Оптимизация объединений: используйте оптимальные методы объединения, такие как внутреннее или внешнее объединение, чтобы ускорить выполнение запросов.

12. Использование хранимых процедур: хранимые процедуры могут ускорить выполнение повторяющихся запросов.

13. Использование кеширования: используйте кеширование, чтобы ускорить выполнение запросов и уменьшить нагрузку на базу данных.

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

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

16. Оптимизация запросов: проверяйте и оптимизируйте свои SQL-запросы, чтобы улучшить их производительность.

17. Ограничение данных: ограничивайте количество возвращаемых данных, чтобы улучшить производительность.

18. Мониторинг производительности: мониторинг производительности поможет вам выявить проблемы и найти способы их устранения.

19. Обновление ПО: регулярно обновляйте ПО, используемое вашей базой данных, чтобы воспользоваться последними улучшениями производительности.

20. Использование индексов: правильное использование индексов может существенно улучшить производительность SQL-запросов.

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

Читать полностью…

SQL и БД Learning

💻Knex.js — конструктор SQL-запросов для PostgreSQL и других СУБД

npm install knex --save
npm install pg --save

Knex.js спроектирован как гибкий и портативный инструмент.

В нем есть как традиционные колбеки, так и интерфейс промисов для более чистого управления потоком async, потоковый интерфейс, полнофункциональные конструкторы запросов и схем, поддержка транзакций (с точками сохранения), пул соединений и стандартизированные ответы между различными клиентами.

Knex можно использовать в качестве конструктора SQL-запросов как в Node.JS, так и в браузере, ограничиваясь возможностями WebSQL (например, невозможностью дропать таблицы или читать схемы). Составлять SQL-запросы в браузере для выполнения на сервере крайне не рекомендуется, так как это может стать причиной серьезных уязвимостей в безопасности.

🟡 Доки
🖥 GitHub

Читать полностью…

SQL и БД Learning

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

Для выполнения поиска значений в таблице, которые не совпадают с другой таблицей в SQL, можно использовать операторы JOIN, NOT IN и NOT EXISTS.

1. JOIN - используется для объединения двух таблиц по заданному условию. Для поиска значений, которые не совпадают, можно использовать LEFT JOIN или RIGHT JOIN, а затем выбрать строки с NULL значениями в столбцах таблицы-присоединения.

2. NOT IN - спользуется для выбора значений из одной таблицы, которые не содержатся в другой таблице.

3. NOT EXISTS - используется для проверки наличия значений в подзапросе и выбора строк, которые не имеют соответствия в другой таблице.

Читать полностью…

SQL и БД Learning

Ваши дашборды грузятся по минуте? SQL-запросы «падают» на продакшене, а бизнес требует отчеты «еще вчера»?

Узкое место — не мощность сервера, а эффективность кода и архитектуры запросов.

Прокачайте скорость для себя и команды - получите бесплатно тренинг «Аналитика без тормозов» от Георгия Семенова, руководителя из Яндекс
Вы узнаете:
✅ Методы ускорения запросов и дашбордов, применимые к любой СУБД
✅ Специфические нюансы оптимизации, которые отличают middle от senior.
Но это не всё. Мы понимаем: результат дает прокачка всей команды и внедрение знаний в конкретные рабочие задачи.
Симулейтив предлагает корпоративное обучение под ключ:
✅Преподаватели-практики из “биг-теха” адаптируют программу под ваши задачи
✅Выгода до 30% при пакетном команды
✅Рамочный договор и помощь с компенсацией

Примените знания уже сегодня, а затем внедрите её в работу всего отдела аналитики - чтобы ваши процессы полетели!
Забрать тренинг
Реклама. ООО "АЙТИ РЕЗЮМЕ". ИНН 4025460134. erid: 2W5zFJfr8iM

Читать полностью…

SQL и БД Learning

Индекс GIN

Индекс GIN - это тип индекса в PostgreSQL, который позволяет эффективно искать данные в полнотекстовых полях, массивах, JSON и других типах данных. Он создается на столбцах с комплексными или составными типами данных, такими как полнотекстовые данные или JSON. Индекс разбивает значения в столбце на отдельные элементы и создает отображение между этими элементами и строками в таблице, что позволяет быстро искать значения в этих типах данных.

Преимущества использования индекса GIN:
- Быстрый поиск по полнотекстовым данным и другим составным типам данных
- Поддержка операций поиска, включая поиск по подстроке и полнотекстовый поиск
- Поддержка операций над массивами, такие как поиск элементов массива и проверка наличия значения в массиве
- Возможность использования в комбинации с другими индексами для дополнительной оптимизации запросов

Создание индекса осуществляется с указанием типа индекса как GIN и имени столбца, на котором создается индекс.
Пример: CREATE INDEX idx_gin ON mytable USING GIN (mycolumn);

Использование индекса GIN в запросах выполняется с помощью оператора @@ или функции tsquery.

Читать полностью…

SQL и БД Learning

Порядок выполнения команд в SQL

Читать полностью…

SQL и БД Learning

Знакомимся с key-value NoSQL-БД: наполняем Redis данными из Kafka

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

Читать полностью…

SQL и БД Learning

С кодом у тебя всё ок.
Если что-то не работает — смотришь логи, находишь баг, фикcишь.

А с женщинами ощущение, будто:
— документации нет
— поведение недетерминированное
— один и тот же input → разный output
— вчера работало, сегодня — игнор

Ты вроде нормальный парень.
Не токсик. Не дурак. Не бедный.
По логике этого должно хватать.

Но система не сходится.

Ты общаешься — вроде без ошибок.
А в ответ холод, странные реакции или «давай как-нибудь потом».

Самое бесячее — ты не понимаешь, где именно происходит краш.

Со временем я понял простую вещь:
в отношениях и общении с женщинами другая архитектура.
Не интуиция. Не магия.
Просто другие правила, которые никто не объяснил.

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

Если ты привык дебажить, а не гадать — оставайся. Тут будет полезно: /channel/+T1mzcKH__J80NmI6

Читать полностью…

SQL и БД Learning

Простой и эффективный метод удаления дубликатов из таблицы

Предположим, у нас есть простая таблица с двумя столбцами: id – это первичный ключ и v простое целочисленное значение

Приведенный код создает таблицу и вставляет несколько значений. Выведем на экран все строки из нашей тестовой таблицы. Как видите, id имеет уникальные значения, но поле val имеет содержит дубликаты (фото 1).

Наша задача состоит в том, чтобы удалить строки с поввторяющимися значениями в столбце val и сохранить уникальные значения с минимальным значением идентификатора id.

Для начала попробуем найти дубликаты. Мы можем использовать простое LEFT JOIN таблицы самой с собой по полю val с дополнительным условием для предотвращения объединения идентичных строк (для наглядности дадим алиасы для таблицы и копии) (фото 2).

В конечном итоге видно, что уникальные строки с минимальным id имеют (null) в столбцах из copy_tbl. Это происходит потому что для минимального значения id в исходной таблице нет строк соответсвующих условию в таблице копии. Итак, нам нужно оставить строки в которых нет соответствия (уникальные) и удалить. Это можно осуществить следующим запросом (фото 2).

Читать полностью…

SQL и БД Learning

#вопросы_с_собеседований
Можно ли связать SQL Server с другими серверами?

Да,
можно подключить SQL Server к любому серверу базы данных, поддерживающему поставщика OLE-DB. Серверы баз данных, поддерживающие поставщика OLE-DB:
- IBM Informix
- Microsoft Access
- База данных Oracle

Читать полностью…

SQL и БД Learning

6 SQL-запросов, о которых должен знать каждый дата-инженер

Смотреть статью

Читать полностью…

SQL и БД Learning

Руководство по наиболее востребованным базовым командам SQL

Смотреть статью

Читать полностью…

SQL и БД Learning

📢SQL Translator - это инструмент для преобразования запросов на естественном языке в SQL-запросы с помощью искусственного интеллекта. Этот проект является 100% бесплатным и с открытым исходным кодом.

git clone https://github.com/whoiskatrin/sql-translator.git

Github
Проект

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования

При выборке из таблицы workers выведите дату в формате '31.12.2025'

Ответ на картинке.

Читать полностью…

SQL и БД Learning

Как избежать распространенных ошибок при работе с СУБД

Смотреть статью

Читать полностью…

SQL и БД Learning

🖥 Google почти всегда задает вопросы по SQL во время собеседований на вакансии Data Analytics, Data Science и Data Engineering.

Поэтому, если вы готовитесь к собеседованию по SQL, решите эти 11 РЕАЛЬНЫХ вопросов для собеседования Google по SQL.

https://datalemur.com/blog/google-sql-interview-questions

Читать полностью…

SQL и БД Learning

Как ускорить базу данных при помощи шардирования

Смотреть статью

Читать полностью…

SQL и БД Learning

Все о jsonb_to_recordset в SQL

Функция jsonb_to_recordset в SQL используется для преобразования данных, хранящихся в формате JSON, в таблицы. Она позволяет распаковывать массивы и объекты JSON и превращать их в строки и столбцы в таблице.

Кроме того, jsonb_to_recordset позволяет работать с вложенными объектами и массивами. Для этого нужно использовать функцию jsonb_each, которая распаковывает объекты и массивы JSON в отдельные строки.

Читать полностью…

SQL и БД Learning

REPLICATE в SQL Server

REPLICATE
- это функция в SQL Server, которая повторяет входную строку указанное количество раз. Эта функция может быть полезна во многих сценариях, например, при создании тестовых данных или при форматировании вывода.

Синтаксис функции REPLICATE выглядит следующим образом:
REPLICATE ( string_expression , integer_expression )

- string_expression - это строковое выражение, которое нужно повторить.
- integer_expression - это выражение целого типа, определяющее количество раз, которое нужно повторить строку.

Читать полностью…

SQL и БД Learning

Создание поля, объединяющего имя и зарплату в выборке из таблицы пользователей

Для создания поля, которое будет включать в себя и имена, и зарплату, можно использовать функцию CONCAT(). Она объединяет две или более строковые величины в одну строку.

Пример SQL-запроса для создания поля new_field на фото.

В примере мы выбираем таблицу users и создаем новое поле с помощью функции CONCAT(). Внутри функции указываем два поля, которые хотим объединить - name и salary. Также задаем новое имя для созданного поля - new_field, используя AS.

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

Читать полностью…

SQL и БД Learning

Выполнение побитовых операций над числами из Oracle Database 21c с помощью:

BIT_AND_AGG
BIT_XOR_AGG
BIT_OR_AGG



✔ Преобразование десятичных чисел в двоичные (5 = 101, 6 = 110 и т. д.).
✔ Сравнение значений в каждой битовой позиции
✔ Преобразование результатов обратно в десятичный вид

Читать полностью…

SQL и БД Learning

Сравнение JSONB с hstore

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

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

Читать полностью…

SQL и БД Learning

Дорогие подписчики, поздравляю вас с наступающим новым годом! Пусть в 2026 году исполнятся все ваши самые заветные желания🎄🎄🎄🎄

Читать полностью…

SQL и БД Learning

Развернуть PostgreSQL в MWS Cloud Platform ⬜️ — быстрее, чем вспомнить пароль от pgAdmin. И точно быстрее, чем объяснить DevOps'у, зачем ещё одна база.

Всего несколько минут и у вас:

⏺️готовая база на сетевых или локальных дисках
⏺️постоянный primary endpoint
⏺️безопасное подключение через Private Link
⏺️автоматические бэкапы и обслуживания по твоему расписанию


🎄🎁 И грант до 10 000 ₽ на запуск — чтобы точно не пришлось вспоминать, как настраивать failover вручную.

➡️Развернуть кластер

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования
В чем заключается основной недостаток удаления данных из существующей таблицы с помощью команды DROP TABLE?

Хотя команда DROP TABLE позволяет полностью удалить данные из существующей таблицы, у не` есть недостаток — она удаляет полную структуру таблицы из базы данных. Из-за этого нам нужно заново создать таблицу для хранения данных.

Читать полностью…

SQL и БД Learning

Чем больше компания, тем больше вызовов 😱

Был десяток команд разработки – теперь их сотни. Единицы развертываний в день превращаются в тысячи.

Как в этом потоке сохранить контроль, прозрачность и управляемость? Как можно автоматизировать рутинные процессы? Разрозненные инструменты и отсутствие единой картины тормозят скорость и снижают качество доставки – что делать?

🎯Если у вас нет ответа на эти вопросы, вашей компании стоит внедрить IT-решение, которое станет "единым источником правды". Оно автоматизирует учет IT-компонентов, управление стендами и планирование поставок, сокращая время на рутину и повышая надежность процессов. Название такого решения – Digital Q.CMDB.

Диасофт посвятит этому решению вебинар, который состоится 23 декабря в 14:00 🗓

Эксперты познакомят вас с решением, расскажут про вызовы масштабирования и затронут практику: от бизнес-требований до поставки.

Welcome: регистрируйтесь по ссылке!
Реклама. ООО "ДИАСОФТ ЭКОСИСТЕМА". ИНН 9715403607.

Читать полностью…

SQL и БД Learning

Функция LOG() в SQL Server

Функция LOG() в SQL Server принимает один аргумент - число, для которого необходимо вычислить натуральный логарифм.

Например, если мы хотим вычислить натуральный логарифм числа 10, мы можем использовать следующий SQL-запрос:
SELECT LOG(10) AS NaturalLogarithm;

Результатом этого запроса будет число, представляющее натуральный логарифм числа 10. Функция LOG() также может быть использована в сочетании с другими функциями и операторами для выполнения более сложных вычислений.

Читать полностью…

SQL и БД Learning

🖥 Предположим, что нам необходимо получить данные о сотруднике, имеющем вторую по величине зарплату в компании. Мы можем использовать следующий запрос:

WITH employee_ranking AS (
SELECT
employee_id,
last_name,
first_name,
salary,
RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
)
SELECT
employee_id,
last_name,
first_name,
salary
FROM employee_ranking
WHERE ranking = 2

Условие WHERE ranking = 2 используется для фильтрации строк второй по величине зарплаты. Обратите внимание, что на позиции 2 может находиться более одного сотрудника, если у них одинаковая зарплата.

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования

Для каких числовых типов недопустимо использовать операции сложения/вычитания?

Ответ:
В качестве операндов операций сложения и вычитания нельзя использовать числовой тип BIT. BIT - целочисленный тип данных, который может принимать значения 1, 0 или NULL.

Читать полностью…

SQL и БД Learning

Функция SUBSTRING_INDEX()

Функция SUBSTRING_INDEX() возвращает подстроку строки до того, как появится указанное число разделителей.

Синтаксис:
SUBSTRING_INDEX(string, delimiter, number).

Протестировать функцию можно здесь.

Читать полностью…
Subscribe to a channel