Data Science. SQL hub
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo #VRHSZ
نمایش بیشتر📈 تحلیل کانال تلگرام Data Science. SQL hub
کانال Data Science. SQL hub (@sqlhub) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 35 926 مشترک است و جایگاه 3 613 را در دسته فناوری و برنامهها و رتبه 17 732 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 35 926 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 30 اوت, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 45 و در ۲۴ ساعت گذشته برابر 0 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 6.57% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 3.47% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 2 361 بازدید دریافت میکند. در اولین روز معمولاً 1 246 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 11 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند sql, индекс, postgres, index, sqlite تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“По всем вопросам- @workakkk
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
РКН: https://vk.cc/cIi9vo
#VRHSZ”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 31 اوت, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
«Hello, World» и горутины ради галочки.
Это про бэкенд на Go, который:
* выдерживает нагрузку
* обрабатывает тысячи запросов одновременно
* работает быстро и стабильно
* легко масштабируется
* выглядит как реальный сервис, а не учебный проект
Ты начнёшь видеть Go не как язык, а как инструмент для построения систем.
В итоге ты сможешь:
* писать высоконагруженные API
* создавать микросервисы
* работать с базами данных и очередями
* разбираться в конкурентности и производительности
* брать коммерческие backend-проекты
Это навык, который ценится на рынке.
Не «знаю Go», а умею делать быстрые и надёжные сервисы.
🎁 48 часов скидка 50% на Stepik: https://stepik.org/a/274119/
Установка Google Chrome (Ubuntu / Debian)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb
Запуск браузера
google-chrome
Обновление системы (включая браузер)
sudo apt update && sudo apt upgrade -y
Проверка версии
google-chrome --version
query = f"SELECT * FROM users WHERE name = '{user_input}'"
пользовательский ввод напрямую попадает в запрос.
Если злоумышленник передаст:
admin'; DROP TABLE users; --
— база выполнит вредоносную команду.
Это классическая SQL injection.
Почему это неудобно сейчас
Безопасный способ — параметризованные запросы:
cursor.execute(
"SELECT * FROM users WHERE name = %s",
(user_input,)
)
Но приходится:
• запускать шаблон отдельно
• передавать значения отдельно
• поддерживать две структуры
Что изменилось в Python 3.14
Появились template string literals (t-strings).
В отличие от f-strings, они:
• не возвращают готовую строку
• возвращают объект Template
• отдельно хранят текст и подставленные значения
Пример:
query = t"SELECT * FROM users WHERE name = {user_input}"
Теперь можно:
• получить все интерполяции
• проверить значения
• экранировать или валидировать их
• и только потом собрать финальный SQL
safe = safe_sql(query)
Результат:
• вредоносный ввод очищается
• SQL-инъекции блокируются
• таблицы остаются на месте
Почему это важно
f-strings - быстрые, но опасные для SQL.
t-strings позволяют сохранить удобство шаблонов и добавить контроль безопасности.
Python движется к безопасным шаблонам по умолчанию, меньше ручной защиты, меньше уязвимостей в продакшене.
-- Плохо
SELECT COUNT(*)
FROM orders
WHERE user_id = 123;
-- Хорошо
SELECT EXISTS (
SELECT 1
FROM orders
WHERE user_id = 123
);
-- Или в условии
SELECT *
FROM users u
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);
ПЛОХО: тяжелый JOIN сразу, база тащит миллионы строк
SELECT u.id, COUNT(e.*) AS events_30d
FROM users u
JOIN events e ON e.user_id = u.id
WHERE e.created_at >= NOW() - INTERVAL '30 days'
AND u.country = 'TH'
GROUP BY u.id;
-- ХОРОШО: сначала сузить пользователей до маленького набора, потом JOIN
WITH target_users AS (
SELECT id
FROM users
WHERE country = 'TH'
)
SELECT tu.id, COUNT(*) AS events_30d
FROM target_users tu
JOIN events e ON e.user_id = tu.id
WHERE e.created_at >= NOW() - INTERVAL '30 days'
GROUP BY tu.id;
-- Индексы, которые реально помогают этому паттерну
CREATE INDEX IF NOT EXISTS idx_users_country_id ON users (country, id);
CREATE INDEX IF NOT EXISTS idx_events_user_time ON events (user_id, created_at);
-- Всегда проверяй, что база использует индекс, а не Seq Scan
EXPLAIN (ANALYZE, BUFFERS)
WITH target_users AS (
SELECT id FROM users WHERE country = 'TH'
)
SELECT tu.id, COUNT(*)
FROM target_users tu
JOIN events e ON e.user_id = tu.id
WHERE e.created_at >= NOW() - INTERVAL '30 days'
GROUP BY tu.id;