Как оптимизировать Redis для высоких нагрузок?
Selectel приглашает на практический вебинар, где разберут целостный инженерный подход к оптимизации Redis под high-load — от памяти и клиентских запросов до мониторинга и нагрузочного тестирования.
Покажут, как настройки и паттерны использования Redis влияют на вытеснение ключей, p95/p99 задержки и стабильность системы.
📅 26 марта, 12:00
📍 Онлайн
👥 Для инженеров DevOps и DBA, бэкенд-разработчиков, системных администраторов и архитекторов
👉Смотрите полную программу и регистрируйтесь: https://slc.tl/gk6xp
Чтобы не пропустить вебинар и узнавать о других событиях и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО "Селектел". erid:2W5zFJ1CQVP
Selectel приглашает на практический вебинар, где разберут целостный инженерный подход к оптимизации Redis под high-load — от памяти и клиентских запросов до мониторинга и нагрузочного тестирования.
Покажут, как настройки и паттерны использования Redis влияют на вытеснение ключей, p95/p99 задержки и стабильность системы.
📅 26 марта, 12:00
📍 Онлайн
👥 Для инженеров DevOps и DBA, бэкенд-разработчиков, системных администраторов и архитекторов
👉Смотрите полную программу и регистрируйтесь: https://slc.tl/gk6xp
Чтобы не пропустить вебинар и узнавать о других событиях и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО "Селектел". erid:2W5zFJ1CQVP
👍1🔥1
Многопользовательская игра, похожая на DOOM, написанная на чистом SQL
DOOMQL - это экспериментальный проект, который позволяет играть в DOOM, используя SQL-запросы.
Идея проста: управление игрой происходит не через клавиатуру или мышь, а через выполнение SQL-команд, которые интерпретируются как действия внутри движка.
🔹 Например, можно отправить
🔹 Вся логика игрового процесса завязана на базу данных, превращая DOOM в своеобразный SQL-интерфейс.
🔹 Это скорее арт-проект, чем практичный инструмент, но отличный пример того, как базы данных можно использовать в самых неожиданных сценариях.
https://github.com/cedardb/DOOMQL
📲 Мы в MAX
#db #SQL
👉 @database_info
DOOMQL - это экспериментальный проект, который позволяет играть в DOOM, используя SQL-запросы.
Идея проста: управление игрой происходит не через клавиатуру или мышь, а через выполнение SQL-команд, которые интерпретируются как действия внутри движка.
🔹 Например, можно отправить
INSERT или UPDATE запрос, чтобы двигаться, стрелять или поворачивать персонажа.🔹 Вся логика игрового процесса завязана на базу данных, превращая DOOM в своеобразный SQL-интерфейс.
🔹 Это скорее арт-проект, чем практичный инструмент, но отличный пример того, как базы данных можно использовать в самых неожиданных сценариях.
https://github.com/cedardb/DOOMQL
📲 Мы в MAX
#db #SQL
👉 @database_info
👍3❤1👎1🔥1
🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
MAX
Системный Администратор | Sysadmin Windows & Linux Server. …
Купить рекламу: https://telega.in/m/i_odmin
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
👎3
Media is too big
VIEW IN TELEGRAM
Продвинутый курс SQL за час - проще некуда
Сегодня я продолжу рассказывать про SQL и мы погрузимся уже в чуть более интересные запросы, связи и я попробую рассказать максимально просто о связях join и о группировках, на мой взгляд две не самые простые темы.
Содержание:
00:00 - Поехали
01:14 - Сортировка по номеру
03:23 - Ограничение вывода limit
06:30 - Уникальность данных distinct
08:18 - Сложение колонок
11:00 - Псевдонимы
15:35 - join - связи таблиц
27:45 - Left join
29:38 - Right join
35:00 - Быть или не быть (exists)
39:32 - Объединения union
41:42 - Глобальный поиск
43:45 - Агрегатные функции
54:00 - Группировка данных group by
источник
📲 Мы в MAX
#db #SQL
👉 @database_info
Сегодня я продолжу рассказывать про SQL и мы погрузимся уже в чуть более интересные запросы, связи и я попробую рассказать максимально просто о связях join и о группировках, на мой взгляд две не самые простые темы.
Содержание:
00:00 - Поехали
01:14 - Сортировка по номеру
03:23 - Ограничение вывода limit
06:30 - Уникальность данных distinct
08:18 - Сложение колонок
11:00 - Псевдонимы
15:35 - join - связи таблиц
27:45 - Left join
29:38 - Right join
35:00 - Быть или не быть (exists)
39:32 - Объединения union
41:42 - Глобальный поиск
43:45 - Агрегатные функции
54:00 - Группировка данных group by
источник
📲 Мы в MAX
#db #SQL
👉 @database_info
👍5❤1
⚠️ Вы уверенно используете JOIN и GROUP BY, но в какой-то момент понимаете: запрос становится громоздким, подзапросов всё больше, логика отчётов усложняется?
Оконные функции — инструмент, который позволяет считать без группировки, ранжировать строки, сравнивать значения и строить накопительные суммы без лишних соединений таблиц. На открытом уроке разберём, чем оконные функции отличаются от агрегатных, как работают PARTITION BY и ORDER BY в окне, и как с помощью ROW_NUMBER(), LAG(), LEAD() и SUM() OVER() упростить сложные запросы.
🚀 Вы научитесь писать более чистые и понятные выражения и поднимете свой уровень работы с данными.
➡️ Открытый урок проходит 31 марта в 20:00 МСК в преддверии старта курса «SQL для разработчиков и аналитиков».
Подробности и регистрация: https://vk.cc/cVMvzq
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Оконные функции — инструмент, который позволяет считать без группировки, ранжировать строки, сравнивать значения и строить накопительные суммы без лишних соединений таблиц. На открытом уроке разберём, чем оконные функции отличаются от агрегатных, как работают PARTITION BY и ORDER BY в окне, и как с помощью ROW_NUMBER(), LAG(), LEAD() и SUM() OVER() упростить сложные запросы.
🚀 Вы научитесь писать более чистые и понятные выражения и поднимете свой уровень работы с данными.
➡️ Открытый урок проходит 31 марта в 20:00 МСК в преддверии старта курса «SQL для разработчиков и аналитиков».
Подробности и регистрация: https://vk.cc/cVMvzq
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🔥1
7 SQL-запросов, которые решают 90% всех задач на работе
Каждый день одно и то же. Открываешь клиент базы данных, чтобы что-то проверить, посчитать или найти. И снова пишешь почти тот же SELECT, что и вчера, с тем же WHERE и JOIN. Знакомо?
SQL в большинстве случаях не требует сложные 100-строчные запросы с вложенными подзапросами на три уровня глубины. Чаще всего нам нужны простые, отточенные и, главное, эффективные конструкции.
В этой статье я собрал 7 таких запросов-«рабочих лошадок». Это не какой-то там справочник, а готовая шпаргалка для реальных задач.
https://habr.com/ru/companies/timeweb/articles/943298/
📲 Мы в MAX
#db
👉 @database_info
Каждый день одно и то же. Открываешь клиент базы данных, чтобы что-то проверить, посчитать или найти. И снова пишешь почти тот же SELECT, что и вчера, с тем же WHERE и JOIN. Знакомо?
SQL в большинстве случаях не требует сложные 100-строчные запросы с вложенными подзапросами на три уровня глубины. Чаще всего нам нужны простые, отточенные и, главное, эффективные конструкции.
В этой статье я собрал 7 таких запросов-«рабочих лошадок». Это не какой-то там справочник, а готовая шпаргалка для реальных задач.
https://habr.com/ru/companies/timeweb/articles/943298/
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1
Media is too big
VIEW IN TELEGRAM
Содержание:
00:00 - подготавливаем базу
04:36 - выбираем данные SELECT
08:30 - указываем текущую базу данных
09:58 - чувствительность к регистру
12:14 - выбор определенных колонок
15:28 - фильтрация с помощью WHERE
20:59 - фильтрация с И и ИЛИ
26:38 - поиск строки по шаблону
29:18 - свой среди чужих
31:26 - NULL когда данные отсутствуют
34:27 - сортировка данных в SQL
38:37 - добавление записей с помощью SQL запроса
45:36 - обновление данных с помощью SQL
52:32 - удаляем данные из базы с помощью SQL
источник
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Базы данных классифицируются в первую очередь по методу организации данных, способу их поиска и хранения, производительности при доступе к данным и способности распределять данные по нескольким узлам для повышения доступности и устойчивости
📲 Мы в MAX
#db
👉 @database_info
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Как масштабировать аналитическую базу данных в облаке и не потерять производительность
Selectel и СР-ТЕХ приглашают на вебинар, где разберут, как ведёт себя аналитическая СУБД в облаке при росте данных и нагрузки — на реальном кейсе с графиками загрузки процессора, памяти и сети.
📅 31 марта, 12:00
📍 Онлайн
👥 Для дата-инженеров, архитекторов баз данных, DevOps и SRE-инженеров, техлидов и руководителей
👉 Смотрите полную программу и регистрируйтесь: https://slc.tl/n31ei
Чтобы не пропустить вебинар и узнавать о других событиях и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО "Селектел". erid:2W5zFGrUJ5F
Selectel и СР-ТЕХ приглашают на вебинар, где разберут, как ведёт себя аналитическая СУБД в облаке при росте данных и нагрузки — на реальном кейсе с графиками загрузки процессора, памяти и сети.
📅 31 марта, 12:00
📍 Онлайн
👥 Для дата-инженеров, архитекторов баз данных, DevOps и SRE-инженеров, техлидов и руководителей
👉 Смотрите полную программу и регистрируйтесь: https://slc.tl/n31ei
Чтобы не пропустить вебинар и узнавать о других событиях и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО "Селектел". erid:2W5zFGrUJ5F
👍1
Шардирование базы данных на пальцах
Популярные приложения рано или поздно должны масштабироваться для ускорения доступа к данным и увеличения трафика. Чтобы распределить данные на несколько серверов и обеспечить им безопасность и целостность, нужна база данных с соответствующей архитектурой — шардированная база данных.
Шардирование (шардинг) базы данных — это деление данных на разные фрагменты с целью повышения производительности и надежности. Иногда это понятие путают с репликацией и партицированием, но на самом деле это разные направления масштабирования, которые могут быть реализованы в пределах одной базы данных.
Существует два вида шардирования:
▪Вертикальное (по столбцам): каждый шард содержит часть столбцов массива и все связанные с ними строки данных.
▪Горизонтальное (по каким-либо критериям строки): каждый шард содержит одинаковые столбцы, но разные строки данных.
https://architecturenotes.co/database-sharding-explained/
📲 Мы в MAX
#db
👉 @database_info
Популярные приложения рано или поздно должны масштабироваться для ускорения доступа к данным и увеличения трафика. Чтобы распределить данные на несколько серверов и обеспечить им безопасность и целостность, нужна база данных с соответствующей архитектурой — шардированная база данных.
Шардирование (шардинг) базы данных — это деление данных на разные фрагменты с целью повышения производительности и надежности. Иногда это понятие путают с репликацией и партицированием, но на самом деле это разные направления масштабирования, которые могут быть реализованы в пределах одной базы данных.
Существует два вида шардирования:
▪Вертикальное (по столбцам): каждый шард содержит часть столбцов массива и все связанные с ними строки данных.
▪Горизонтальное (по каким-либо критериям строки): каждый шард содержит одинаковые столбцы, но разные строки данных.
https://architecturenotes.co/database-sharding-explained/
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Как лучше всего изучать язык SQL?
В 1986 году язык SQL (Structured Query Language) стал стандартом. В течение последующих 40 лет он стал доминирующим языком для систем управления реляционными базами данных. Чтение последнего стандарта (ANSI SQL 2016) может занять много времени. Как я могу его выучить?
В состав языка SQL входят 5 компонентов:
Для бэкенд-инженера может потребоваться знание большинства из них. Аналитику данных может потребоваться хорошее понимание DQL. Выберите те темы, которые наиболее актуальны для вас.
📲 Мы в MAX
#db
👉 @database_info
В 1986 году язык SQL (Structured Query Language) стал стандартом. В течение последующих 40 лет он стал доминирующим языком для систем управления реляционными базами данных. Чтение последнего стандарта (ANSI SQL 2016) может занять много времени. Как я могу его выучить?
В состав языка SQL входят 5 компонентов:
- DDL: data definition language, such as CREATE, ALTER, DROP- DQL: data query language, such as SELECT- DML: data manipulation language, such as INSERT, UPDATE, DELETE- DCL: data control language, such as GRANT, REVOKE- TCL: transaction control language, such as COMMIT, ROLLBACKДля бэкенд-инженера может потребоваться знание большинства из них. Аналитику данных может потребоваться хорошее понимание DQL. Выберите те темы, которые наиболее актуальны для вас.
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Безумные и забавные факты о SQLite
⚫️ SQLite — самая часто разворачиваемая и используемая база данных. На текущий момент активно используется более одного триллиона (1000000000000 или миллиона миллионов) баз данных SQLite.
⚫️ Её поддерживают три человека. Они не допускают внешних контрибьюторов.
Скорее всего, SQLite используется больше, чем все остальные движки баз данных суммарно. В мире работают миллиарды копий SQLite. Её можно встретить повсюду.
https://habr.com/ru/companies/ruvds/articles/873816/
📲 Мы в MAX
#db
👉 @database_info
Скорее всего, SQLite используется больше, чем все остальные движки баз данных суммарно. В мире работают миллиарды копий SQLite. Её можно встретить повсюду.
https://habr.com/ru/companies/ruvds/articles/873816/
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
MAX
Системный Администратор | Sysadmin Windows & Linux Server. …
Купить рекламу: https://telega.in/m/i_odmin
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
Блог практикующего админа. Настройка Windows Server, Active Directory (AD), GPO и терминальных серверов (RDP). Раб…
💩8👎2🥰1🍌1
🚀 Оптимизация запросов в SQL: как не утонуть в данных
Сегодня хочу поделиться мыслями на тему, которая часто становится болью для многих разработчиков баз данных — оптимизация SQL-запросов.
Когда база данных растёт, а запросы становятся сложнее, даже небольшой промах может привести к тому, что ваш сервер начнёт "плакать" под нагрузкой. Вот несколько советов, которые помогут вам держать запросы в тонусе:
1. Индексы — ваш лучший друг (и враг, если использовать неправильно)
Индексы ускоряют поиск данных, но их избыток может замедлить вставку и обновление. Используйте их с умом:
- Индексируйте только те столбцы, которые часто используются в условиях
- Избегайте индексов на столбцах с низкой селективностью (например, пол с значениями "М" и "Ж").
2. Анализируйте план выполнения запроса
Перед тем как оптимизировать, нужно понять, что именно тормозит. Используйте
- Полноценные сканирования таблиц (
- Вложенные циклы (
- Использование временных таблиц и сортировок.
3. Избегайте N+1 проблемы
Если вы работаете с ORM, убедитесь, что не делаете лишних запросов. Например, вместо того чтобы выбирать связанные данные в цикле, используйте
4. Кэшируйте то, что можно кэшировать
Не все данные нужно каждый раз запрашивать из базы. Используйте кэширование для часто запрашиваемых данных. Redis или Memcached — отличные инструменты для этого.
5. Нормализация — это хорошо, но не всегда
Нормализация базы данных помогает избежать дублирования данных, но иногда денормализация может значительно ускорить запросы. Например, если у вас есть сложные агрегации, подумайте о создании материализованных представлений.
6. Следите за статистикой
Базы данных часто используют статистику для оптимизации запросов. Убедитесь, что она актуальна. Например, в PostgreSQL можно обновить статистику с помощью команды
7. Не забывайте про мониторинг
Используйте инструменты для мониторинга производительности базы данных, такие как pg_stat_activity в PostgreSQL или Performance Schema в MySQL. Это поможет вовремя выявить "узкие" места.
📲 Мы в MAX
#db
👉 @database_info
Сегодня хочу поделиться мыслями на тему, которая часто становится болью для многих разработчиков баз данных — оптимизация SQL-запросов.
Когда база данных растёт, а запросы становятся сложнее, даже небольшой промах может привести к тому, что ваш сервер начнёт "плакать" под нагрузкой. Вот несколько советов, которые помогут вам держать запросы в тонусе:
1. Индексы — ваш лучший друг (и враг, если использовать неправильно)
Индексы ускоряют поиск данных, но их избыток может замедлить вставку и обновление. Используйте их с умом:
- Индексируйте только те столбцы, которые часто используются в условиях
WHERE, JOIN и ORDER BY. - Избегайте индексов на столбцах с низкой селективностью (например, пол с значениями "М" и "Ж").
2. Анализируйте план выполнения запроса
Перед тем как оптимизировать, нужно понять, что именно тормозит. Используйте
EXPLAIN (или EXPLAIN ANALYZE в PostgreSQL) для анализа плана выполнения. Обратите внимание на: - Полноценные сканирования таблиц (
Seq Scan). - Вложенные циклы (
Nested Loop), которые могут быть медленными на больших данных. - Использование временных таблиц и сортировок.
3. Избегайте N+1 проблемы
Если вы работаете с ORM, убедитесь, что не делаете лишних запросов. Например, вместо того чтобы выбирать связанные данные в цикле, используйте
JOIN или prefetch_related (в Django). 4. Кэшируйте то, что можно кэшировать
Не все данные нужно каждый раз запрашивать из базы. Используйте кэширование для часто запрашиваемых данных. Redis или Memcached — отличные инструменты для этого.
5. Нормализация — это хорошо, но не всегда
Нормализация базы данных помогает избежать дублирования данных, но иногда денормализация может значительно ускорить запросы. Например, если у вас есть сложные агрегации, подумайте о создании материализованных представлений.
6. Следите за статистикой
Базы данных часто используют статистику для оптимизации запросов. Убедитесь, что она актуальна. Например, в PostgreSQL можно обновить статистику с помощью команды
ANALYZE. 7. Не забывайте про мониторинг
Используйте инструменты для мониторинга производительности базы данных, такие как pg_stat_activity в PostgreSQL или Performance Schema в MySQL. Это поможет вовремя выявить "узкие" места.
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
🔥 Оптимизация сложных SQL-запросов: Как уменьшить время выполнения?
🛠 Основные проблемы:
🔹 Чрезмерное количество
🔹 Неправильные индексы – или их отсутствие вообще.
🔹 Подзапросы вместо
🔹 Ненужные
🔹 Фильтрация после
✅ Как ускорить запрос?
1️⃣ Проверьте индексы – используйте
2️⃣ Разбейте сложный запрос на части – иногда лучше записать результат во временную таблицу.
3️⃣ Избегайте
4️⃣ Используйте
5️⃣ Тестируйте с разными
6️⃣ Оптимизируйте сортировку –
📲 Мы в MAX
#db
👉 @database_info
🛠 Основные проблемы:
🔹 Чрезмерное количество
JOIN – могут приводить к тяжелым вычислениям. 🔹 Неправильные индексы – или их отсутствие вообще.
🔹 Подзапросы вместо
JOIN – иногда работают хуже, чем соединения. 🔹 Ненужные
SELECT * – выбираем только нужные колонки. 🔹 Фильтрация после
JOIN – фильтруем данные как можно раньше. ✅ Как ускорить запрос?
1️⃣ Проверьте индексы – используйте
EXPLAIN перед выполнением запроса. Если сканируется весь таблица (Full Table Scan), значит, нужны индексы. 2️⃣ Разбейте сложный запрос на части – иногда лучше записать результат во временную таблицу.
3️⃣ Избегайте
SELECT * – указывайте только нужные колонки. 4️⃣ Используйте
EXISTS вместо IN – в подзапросах это часто работает быстрее. 5️⃣ Тестируйте с разными
JOIN – попробуйте INNER JOIN, LEFT JOIN, а в некоторых случаях UNION. 6️⃣ Оптимизируйте сортировку –
ORDER BY без индексов тормозит запрос. #db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥2
Оптимизация запросов: Индексы vs. Анализ плана выполнения 🚀
Сейчас я покажу вам, почему простое добавление индексов не всегда ускоряет запросы. Часто встречаю ситуацию, когда разработчики по умолчанию добавляют индексы на каждое поле WHERE, но запросы всё равно работают медленно. Давайте разберёмся!
🔹 Миф: индексы всегда ускоряют запросы
На самом деле, индекс может даже замедлить выполнение, если:
✅ Запрос возвращает слишком много строк - сканирование индекса будет дороже, чем полное сканирование таблицы.
✅ Индекс не покрывает весь запрос - приходится делать обращения к основной таблице.
✅ Слишком много индексов - это замедляет INSERT/UPDATE/DELETE.
🔹 Как правильно анализировать?
Используйте
🔍 Используется ли индекс?
🔍 Сколько строк проходит сканирование?
🔍 Есть ли операции сортировки, которые можно избежать с индексом?
🔹 Что делать, если запрос медленный?
1️⃣ Проверить план выполнения (не добавлять индекс вслепую!).
2️⃣ Подумать о составных индексах, если запрос фильтрует по нескольким полям.
3️⃣ Проверить, можно ли избежать сортировки (
4️⃣ Рассмотреть материализованные представления для сложных агрегатов.
📲 Мы в MAX
#db
👉 @database_info
Сейчас я покажу вам, почему простое добавление индексов не всегда ускоряет запросы. Часто встречаю ситуацию, когда разработчики по умолчанию добавляют индексы на каждое поле WHERE, но запросы всё равно работают медленно. Давайте разберёмся!
🔹 Миф: индексы всегда ускоряют запросы
На самом деле, индекс может даже замедлить выполнение, если:
✅ Запрос возвращает слишком много строк - сканирование индекса будет дороже, чем полное сканирование таблицы.
✅ Индекс не покрывает весь запрос - приходится делать обращения к основной таблице.
✅ Слишком много индексов - это замедляет INSERT/UPDATE/DELETE.
🔹 Как правильно анализировать?
Используйте
EXPLAIN ANALYZE (PostgreSQL) или EXPLAIN FORMAT=JSON (MySQL) для понимания: 🔍 Используется ли индекс?
🔍 Сколько строк проходит сканирование?
🔍 Есть ли операции сортировки, которые можно избежать с индексом?
🔹 Что делать, если запрос медленный?
1️⃣ Проверить план выполнения (не добавлять индекс вслепую!).
2️⃣ Подумать о составных индексах, если запрос фильтрует по нескольким полям.
3️⃣ Проверить, можно ли избежать сортировки (
ORDER BY по индексу). 4️⃣ Рассмотреть материализованные представления для сложных агрегатов.
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
🔥 Оптимизация SQL-запросов: 5 ключевых техник
Сегодня я покажу вам, как ускорить выполнение SQL-запросов, ведь никто не любит ждать, пока база данных "думает". 🚀
1️⃣ Используйте индексы
Индексы – это ускоритель запросов. Если у вас часто выполняются
2️⃣ Избегайте
Выбирайте только нужные столбцы.
3️⃣ Нормализация или денормализация?
Иногда стоит разбивать таблицы (нормализация) для устранения дублирования данных. В других случаях – наоборот, объединять (денормализация) ради быстродействия. Анализируйте ситуацию!
4️⃣ Кеширование запросов
Если запрос выполняется часто и данные редко меняются, используйте
5️⃣ Анализируйте планы выполнения
Команда
💡 Используете ли вы эти техники? Напишите, какой метод вам помог ускорить работу БД!
📲 Мы в MAX
#db
👉 @database_info
Сегодня я покажу вам, как ускорить выполнение SQL-запросов, ведь никто не любит ждать, пока база данных "думает". 🚀
1️⃣ Используйте индексы
Индексы – это ускоритель запросов. Если у вас часто выполняются
WHERE, JOIN или ORDER BY по определенному столбцу – создайте для него индекс. Но не переборщите: индексы ускоряют чтение, но замедляют вставку и обновление данных. 2️⃣ Избегайте
SELECT * Выбирайте только нужные столбцы.
SELECT * может загружать ненужные данные и нагружать сервер. Лучше указывать конкретные столбцы. 3️⃣ Нормализация или денормализация?
Иногда стоит разбивать таблицы (нормализация) для устранения дублирования данных. В других случаях – наоборот, объединять (денормализация) ради быстродействия. Анализируйте ситуацию!
4️⃣ Кеширование запросов
Если запрос выполняется часто и данные редко меняются, используйте
QUERY CACHE или внешние кеширующие механизмы (Redis, Memcached). 5️⃣ Анализируйте планы выполнения
Команда
EXPLAIN в MySQL/PostgreSQL покажет, как СУБД выполняет запрос. Это поможет найти узкие места: медленные JOIN'ы, сканы всей таблицы и т.д. 💡 Используете ли вы эти техники? Напишите, какой метод вам помог ускорить работу БД!
#db
👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2