| Канал | Публикаций | Подписчиков | Последний пост |
|---|---|---|---|
Базы данных (Data Base)
[telegram]
|
60 | 8139 | 21.09.26 |
|
Хакер Free
[max]
|
17 | 3121 | 23.08.26 |
|
C++ Developer • Cpp Syst…
[max]
|
17 | 2443 | 23.08.26 |
Спорт Ньюс #7036
[max]
|
45 | 355683 | 13.08.26 |
Криптовалюта Pro #2669
[max]
|
15 | 444964 | 09.08.26 |
Digital Media #341
[max]
|
17 | 292537 | 13.07.26 |
Новости дня #2531
[max]
|
31 | 66114 | 18.08.26 |
| Канал | Публикаций | Подписчиков | Последний пост |
|---|---|---|---|
|
Bash Советы - Bash Scrip…
[max]
|
17 | 2794 | 23.08.26 |
|
Книги для программистов
[max]
|
17 | 3471 | 23.08.26 |
|
Программирование {BookFl…
[max]
|
17 | 3556 | 23.08.26 |
IT Новости #9652
[max]
|
41 | 363450 | 24.07.26 |
Авто Мир #3483
[max]
|
41 | 280766 | 12.08.26 |
Digital Media #3802
[max]
|
2 | 180811 | 09.07.26 |
Маркетинг Гуру #329
[max]
|
14 | 262160 | 22.08.26 |
Загрузка данных...
| Размещенный пост | Текст публиакции | Рекламирующий канал | Просмотры | Просмотры 24 ч | Прирост подписчиков |
|---|
Загрузка данных...
| Размещенный пост | Текст публикации | Рекламируемый канал | Просмотры | Просмотры 24 ч | Прирост подписчиков |
|---|
| Дата и время публикации | Текст публикации | Рекламируемый канал | Динамика просмотров | Всего просмотров |
|---|---|---|---|---|
| 2026-09-22 07:30:02 | ⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк Создание уникальных индексов в некоторых случаях невозможно из-за дублирования значений - например, в строках, помеченных как «мягко удаленные» (soft-deleted). Исключив такие строки из индекса, можно корректно настроить ограничение уникальности. В MySQL частичные уникальные индексы (unique partial indexes) требуют эмуляции. В современных базах данных часто используется паттерн Soft Delete, когда данные не удаляются физически, а помечаются флагом is_deleted = true. Если вы хотите, чтобы поле email было уникальным только для активных пользователей, обычный уникальный индекс выдаст ошибку при попытке регистрации нового пользователя с почтой, которая уже есть в «корзине». Использование частичного индекса решает эту проблему, позволяя игнорировать помеченные на удаление записи. Нюанс для MySQL: В отличие от PostgreSQL или SQL Server, MySQL не поддерживает синтаксис WHERE внутри команды CREATE INDEX. Чтобы добиться такого же поведения, разработчики обычно используют: • Виртуальные колонки (Generated Columns): создается колонка, которая принимает значение только если запись активна, и на нее вешается уникальный индекс. • Составные индексы: включение флага удаления или временной метки в сам индекс. #db 👉 @database_info ⚡️ Совет по рабо… | — |
|
364 |
| 2026-09-21 10:43:22 | Как быстро найти “тяжёлые” запросы в PostgreSQL Сегодня покажу простой способ найти самые ресурсоёмкие запросы, которые прямо сейчас выполняются в PostgreSQL. Это помогает, когда база начинает “тормозить”, а понять почему - сложно. Используем pg_stat_activity и pg_stat_statements. Но сначала убедись, что pg_stat_statements включён: -- Проверка: SELECT * FROM pg_extension WHERE extname = 'pg_stat_statements'; -- Включение (если не установлен): CREATE EXTENSION pg_stat_statements; Теперь сам запрос на поиск “тяжёлых” запросов: SELECT query, calls, total_exec_time, mean_exec_time, rows FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 5; А если интересует то, что прямо сейчас выполняется — тогда так: SELECT pid, now() - query_start AS duration, state, query FROM pg_stat_activity WHERE state != 'idle' ORDER BY duration DESC; Я часто сохраняю эти запросы в отдельный .sql-файл, чтобы запускать сразу при проблемах с производительностью. Полезно добавить в .psqlrc алиас или даже обернуть в скрипт. Как вы ищете “тяжёлые” запросы в проде? Поделитесь в комментариях. #db 👉 @database_info Как быстро найти… | — |
|
450 |
| 2026-09-20 11:56:10 | 🚀 Сегодня покажу, как быстро диагностировать «тормоза» в PostgreSQL - без всяких внешних тулов и дополнительных логов. Только pg_stat_activity и немного здравого смысла. Пользователи жалуются - "всё тормозит". Как понять, что именно? Открываем сессию в psql от суперпользователя и запускаем: SELECT pid, state, wait_event_type, wait_event, query, now() - query_start AS duration FROM pg_stat_activity WHERE state != 'idle' ORDER BY duration DESC; 📌 Что это нам даёт: - Видим все активные (и зависшие) запросы. - Сколько времени они уже выполняются (duration). - На чём конкретно «висят»: CPU, IO, Lock, Client и т.д. (wait_event_type + `wait_event). Пример: wait_event_type: Lock wait_event: relation→ Сразу ясно: кто-то держит блокировку на таблицу, и все остальные ждут. 🔥Чтобы найти виновника, можно запустить: SELECT blocked_locks.pid AS blocked_pid, blocking_locks.pid AS blocking_pid, blocked_activity.query AS blocked_query, blocking_activity.query AS blocking_query FROM pg_locks blocked_locks JOIN pg_locks blocking_locks ON blocked_locks.locktype = blocking_locks.locktype AND blocked_locks.database IS NOT DISTINCT FROM blocking_locks.database AND blocked_locks.relation IS NOT DISTINCT FROM blocking_locks.relation AND blocked_locks.page IS NOT DISTINCT FROM blocking_locks.page AND blocked_locks.tuple IS NOT DISTINCT FROM blocking_locks.tuple AND blocked_locks.transactionid IS NOT DISTINCT FROM blocking_locks.transactionid AND blocked_locks.classid IS NOT DISTINCT FROM blocking_locks.classid AND blocked_locks.objid IS NOT DISTINCT FROM blocking_locks.objid AND blocked_locks.objsubid IS NOT DISTINCT FROM blocking_locks.objsubid AND blocked_locks.pid != blocking_locks.pid JOIN pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid JOIN pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid WHERE NOT blocked_locks.granted; Этот запрос покажет, кто кого блокирует, и с каким запросом. 🙌 Это простая, но мощная техника диагностики. Помогала мне не раз в проде - особенно, когда времени мало, а багов много. #db 👉 @database_info 🚀 Сегодня покажу… | — |
|
504 |
| 2026-09-20 00:26:19 | Данные неподписчиков чтобы неподписчиков скрыты видеть доступна Данные неподписч… | — |
|
33712 |
| 2026-08-09 04:00:19 | подписку все для подписке все для подписку все для… | — |
|
7358 |
| 2026-07-02 15:11:19 | подписку по Данные скрыты подписку по Данн… | — |
|
16589 |
Год
Месяц
Неделя
Загрузка данных...
| Время | Контент | Подписчиков | Кто ссылался | Просмотры 48ч | Просмотры 24ч |
|---|