Базы данных (Data Base) – Telegram
Базы данных (Data Base)
8.22K subscribers
560 photos
468 videos
19 files
539 links
Базы данных (Data Base). По всем вопросам @evgenycarter
Download Telegram
PostgreSQL 18: быстрее, умнее, нагляднее

Каждый новый релиз PostgreSQL — это событие, но 18-я версия выглядит особенно интересно, предлагая фундаментальные улучшения в производительности, значительные удобства для разработчиков и долгожданные доработки в обслуживании и мониторинге.

https://habr.com/ru/companies/postgrespro/articles/952514/

Мы в MAX

#db

👉 @database_info
👍7
Шардирование базы данных на пальцах

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

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

Существует два вида шардирования:

Вертикальное (по столбцам): каждый шард содержит часть столбцов массива и все связанные с ними строки данных.
Горизонтальное (по каким-либо критериям строки): каждый шард содержит одинаковые столбцы, но разные строки данных.

https://architecturenotes.co/database-sharding-explained/

Мы в MAX

#db

👉 @database_info
👍8
Хранилища данных

Транзакции | Введение | ACID | CAP | Обработка ошибок
Аномалии параллельных транзакций
Индексы SQL
Подготовка к собесу - Классификация баз данных
Подготовка к собесу - Оптимизация запросов
Подготовка к собесу - Подзапросы SQL и оптимизация
Подготовка к собесу - Индексы и партиции SQL

источник

Мы в MAX

#db

👉 @database_info
👍72🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Как лучше всего изучать язык SQL?

В 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. Выберите те темы, которые наиболее актуальны для вас.

Мы в MAX

#db

👉 @database_info
🔥8👍1
Безумные и забавные факты о SQLite

⚫️SQLite — самая часто разворачиваемая и используемая база данных. На текущий момент активно используется более одного триллиона (1000000000000 или миллиона миллионов) баз данных SQLite.

⚫️Её поддерживают три человека. Они не допускают внешних контрибьюторов.
Скорее всего, SQLite используется больше, чем все остальные движки баз данных суммарно. В мире работают миллиарды копий SQLite. Её можно встретить повсюду.

https://habr.com/ru/companies/ruvds/articles/873816/

Мы в MAX

#db

👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍9
База данных PostgreSQL

Часть 1. Установка и настройка
Часть 2. Язык запросов SQL
Часть 3. Реляционная модель
Часть 4. Поиск и анализ данных
Часть 5. Индексы

источник

Мы в MAX

#db

👉 @database_info
1👍53🔥2
Media is too big
VIEW IN TELEGRAM
NoSQL для начинающих на примере MongoDB

00:00 - Что такое NoSQL и где он применяется?
04:18 - Основные виды NoSQL
06:04 - Дополнительные темы
09:31 - SQL vs NoSQL
11:53 - Немного о MongoDB
14:37 - Практика. Моделирование структуры. Работа с shell и Compass

Мы в MAX

#db

👉 @database_info
1👍31
Храните данные ближе к клиентам 📩

Разверните файловые хранилища, медиасерверы, большие архивы данных и системы аналитики на сервере-хранилище от Selectel в Новосибирске.

Отличное решение, если:
📍вы работаете с проектами из Сибири и с Дальнего Востока,
📍вам важна географическая распределенность.

Закажите сервер SL108R в Selectel и храните данные там, где удобно:
https://slc.tl/y00o0?erid=2W5zFHha3qr
🚀 Оптимизация запросов в SQL: как не утонуть в данных

Сегодня хочу поделиться мыслями на тему, которая часто становится болью для многих разработчиков баз данных — оптимизация 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. Это поможет вовремя выявить "узкие" места.

Мы в MAX

#db

👉 @database_info
👍7
Шпаргалка по оконным функциям в SQL

Мы в MAX

#db

👉 @database_info
👍9🔥51
🔥 Оптимизация сложных SQL-запросов: Как уменьшить время выполнения?

🛠 Основные проблемы:
🔹 Чрезмерное количество 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 без индексов тормозит запрос.

Мы в MAX

#db

👉 @database_info
👍54