✔️ Как прокачать свой SQL до уровня больших данных
Чем отличается SQL в больших данных от обычного SQL? В больших данных используются распределённые вычисления.
Вычисления распределяются между несколькими серверами. Одна база данных находится сразу на нескольких серверах. Результат запроса тоже вычисляется одновременно несколькими серверами. Алгоритмы распределённых вычислений описывает парадигма MapReduce. Давайте разберём, на что это влияет и как прокачать свой SQL до уровня больших данных.
Предупреждение: в данной статье рассматриваются канонические архитектуры обработки данных. Многие современные СУБД и фреймворки построены на их основе и содержат в себе множество доработок и улучшений. Однако набор оптимизаций может отличаться. Поэтому реальная обработка данных на вашем проекте может отличаться в лучшую сторону благодаря именно вашему инструменту. Важно понимать, какие именно оптимизации способен выполнять ваш фреймворк, чтобы правильно контролировать эффективность алгоритмов.
➡️ Читать дальше
@sqlhub
Чем отличается SQL в больших данных от обычного SQL? В больших данных используются распределённые вычисления.
Вычисления распределяются между несколькими серверами. Одна база данных находится сразу на нескольких серверах. Результат запроса тоже вычисляется одновременно несколькими серверами. Алгоритмы распределённых вычислений описывает парадигма MapReduce. Давайте разберём, на что это влияет и как прокачать свой SQL до уровня больших данных.
Предупреждение: в данной статье рассматриваются канонические архитектуры обработки данных. Многие современные СУБД и фреймворки построены на их основе и содержат в себе множество доработок и улучшений. Однако набор оптимизаций может отличаться. Поэтому реальная обработка данных на вашем проекте может отличаться в лучшую сторону благодаря именно вашему инструменту. Важно понимать, какие именно оптимизации способен выполнять ваш фреймворк, чтобы правильно контролировать эффективность алгоритмов.
➡️ Читать дальше
@sqlhub
👍8❤1🔥1
English for Developers - канал для тех, кто хочет учить технический английский. От создатателей популярного ит-канала Data analysis.
1. техническая лексика
2. опросы на английском
3. шутки на английском
Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers.
1 канал вместо тысячи учебников и курсов
1. техническая лексика
2. опросы на английском
3. шутки на английском
Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers.
1 канал вместо тысячи учебников и курсов
👍5❤1🔥1
🔥 Эффективные SQL-запросы. 12 способов переписать запросы SQL для улучшения их производительности.
Я часто работаю в условиях, когда при настройке производительности нет возможности менять индексы или параметры сервера. Я обычно сталкиваюсь с подобными сценариями, когда имею дело с:
Базами данных поставщиков.
“Хрупкими” системами.
Недостаточным местом на диске.
Ограниченным инструментарием/непосредственным анализом.
Возможностями, ограниченными системой безопасности.
Хотя всегда предпочтительней решать проблему производительности в корне, иногда единственным способом, которым я могу воспользоваться для решения проблемы в подобных условиях, является переписывание запросов.
Я решил написать этот краткий пост, потому что хотел бы изначально иметь такой ресурс. Иногда, возможно, в попытках найти способ переписать SQL-запрос данный пост даст толчок вашим творческим идеям.
➡️ Читать дальше
@sqlhub
Я часто работаю в условиях, когда при настройке производительности нет возможности менять индексы или параметры сервера. Я обычно сталкиваюсь с подобными сценариями, когда имею дело с:
Базами данных поставщиков.
“Хрупкими” системами.
Недостаточным местом на диске.
Ограниченным инструментарием/непосредственным анализом.
Возможностями, ограниченными системой безопасности.
Хотя всегда предпочтительней решать проблему производительности в корне, иногда единственным способом, которым я могу воспользоваться для решения проблемы в подобных условиях, является переписывание запросов.
Я решил написать этот краткий пост, потому что хотел бы изначально иметь такой ресурс. Иногда, возможно, в попытках найти способ переписать SQL-запрос данный пост даст толчок вашим творческим идеям.
➡️ Читать дальше
@sqlhub
👍8❤1🔥1
💻 Типы таблиц в PostgreSQL: clustered, foreign, partitioned и inherited tables
В статье речь пойдёт про кластеризованные, внешние, партицированные и наследуемые таблицы. Посмотрим на примеры их создания, области применения, плюсы и минусы их использования.
Clustered tables — кластеризованные таблицы
Мало кто любит хаос, всем нравится порядок. В рамках реляционных баз данных понятие хаоса тесно переплетено с хранением информации, потому что на протяжении своего жизненного цикла таблица постоянно видоизменяется.
В процессе работы с РСУБД на уровне диска происходит постоянное изменение содержимого таблицы. Например, вы обновили данные и ваша обновлённая строка попала на другую страницу таблицы (тут надо оговориться про FILLFACTOR) с появлением мёртвой записи (dead tuple) в текущей позиции. Затем autovacuum-процесс удалил мёртвую запись, и освободившийся слот заполнился вновь поступившей строкой.
➡️ Читать дальше
@sqlhub
В статье речь пойдёт про кластеризованные, внешние, партицированные и наследуемые таблицы. Посмотрим на примеры их создания, области применения, плюсы и минусы их использования.
Clustered tables — кластеризованные таблицы
Мало кто любит хаос, всем нравится порядок. В рамках реляционных баз данных понятие хаоса тесно переплетено с хранением информации, потому что на протяжении своего жизненного цикла таблица постоянно видоизменяется.
В процессе работы с РСУБД на уровне диска происходит постоянное изменение содержимого таблицы. Например, вы обновили данные и ваша обновлённая строка попала на другую страницу таблицы (тут надо оговориться про FILLFACTOR) с появлением мёртвой записи (dead tuple) в текущей позиции. Затем autovacuum-процесс удалил мёртвую запись, и освободившийся слот заполнился вновь поступившей строкой.
➡️ Читать дальше
@sqlhub
👍8❤1🔥1
🔐 КАК ИЗМЕНИТЬ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ MYSQL
Одной из важных операций при работе с пользователями в СУБД MySQL является смена пароля пользователя. Как правило изменить пароль пользователя может только суперпользователь с именем root. Однако если обычный пользователь наделен полномочиями на смену пароля то он также может это сделать.
В данной статье будет рассмотрено как изменить пароль пользователя MySQL в операционной системе Ubuntu 20.04.
Содержание статьи:
Как сменить пароль пользователя MySQL
Шаг 1. Как узнать версию MySQL
Шаг 2. Вход в консоль MySQL
Шаг 3. Просмотр хостов пользователя
Шаг 4. Смена пароля пользователя при помощи SET PASSWORD
Шаг 5. Смена пароля пользователя при помощи ALTER USER
Шаг 6. Сброс кэша привилегий
Шаг 7. Проверка нового пароля
Выводы
➡️ Читать дальше
@sqlhub
Одной из важных операций при работе с пользователями в СУБД MySQL является смена пароля пользователя. Как правило изменить пароль пользователя может только суперпользователь с именем root. Однако если обычный пользователь наделен полномочиями на смену пароля то он также может это сделать.
В данной статье будет рассмотрено как изменить пароль пользователя MySQL в операционной системе Ubuntu 20.04.
Содержание статьи:
Как сменить пароль пользователя MySQL
Шаг 1. Как узнать версию MySQL
Шаг 2. Вход в консоль MySQL
Шаг 3. Просмотр хостов пользователя
Шаг 4. Смена пароля пользователя при помощи SET PASSWORD
Шаг 5. Смена пароля пользователя при помощи ALTER USER
Шаг 6. Сброс кэша привилегий
Шаг 7. Проверка нового пароля
Выводы
➡️ Читать дальше
@sqlhub
👍8❤1🔥1
Агрегаты в БД — зачем, как, а стоит ли?
С течением жизни приложения в его БД накапливается все больше данных. Десктопное оно, SaaS или даже мобильное – неважно, в современном мире почти каждый что-то хранит “у себя”.
Если это какая-то локальная утилита – не страшно, само ее существование у пользователя достаточно ограничено. Но если это что-то вроде нашего СБИС, который накапливает и помогает анализировать операции за все время существования бизнеса, то, по мере его роста, не только операций становится больше, но и понимания, какие именно сводные отчеты помогают в оперативном управлении.
Вот про то, как сделать такие отчеты быстрыми, какие бывают способы их реализации и встречаются “грабли” на этом пути, сегодня и поговорим.
➡️ Читать дальше
@sqlhub
С течением жизни приложения в его БД накапливается все больше данных. Десктопное оно, SaaS или даже мобильное – неважно, в современном мире почти каждый что-то хранит “у себя”.
Если это какая-то локальная утилита – не страшно, само ее существование у пользователя достаточно ограничено. Но если это что-то вроде нашего СБИС, который накапливает и помогает анализировать операции за все время существования бизнеса, то, по мере его роста, не только операций становится больше, но и понимания, какие именно сводные отчеты помогают в оперативном управлении.
Вот про то, как сделать такие отчеты быстрыми, какие бывают способы их реализации и встречаются “грабли” на этом пути, сегодня и поговорим.
➡️ Читать дальше
@sqlhub
👍7❤1🔥1
🔥 Рефакторинг SQL-запросов
Практически любой разработчик приложений баз данных сталкивается с необходимостью переделки ранее написанных SQL-запросов. При этом обычно преследуются две цели: во-первых – оптимизация времени выполнения запроса, во-вторых – улучшение дизайна запроса. Этот процесс подпадает под определение одной из основных практик экстремального программирования – рефакторинга (улучшения качества кода без изменения его функциональности). Основная масса литературы по рефакторингу посвящена переделке кодов программ, написанных на алгоритмических языках, и касается, как правило, объектно-ориентированных аспектов программирования. Целью данной статьи является попытка описания практики рефакторинга для SELECT-запросов языка SQL.
➡️ Читать дальше
@sqlhub
Практически любой разработчик приложений баз данных сталкивается с необходимостью переделки ранее написанных SQL-запросов. При этом обычно преследуются две цели: во-первых – оптимизация времени выполнения запроса, во-вторых – улучшение дизайна запроса. Этот процесс подпадает под определение одной из основных практик экстремального программирования – рефакторинга (улучшения качества кода без изменения его функциональности). Основная масса литературы по рефакторингу посвящена переделке кодов программ, написанных на алгоритмических языках, и касается, как правило, объектно-ориентированных аспектов программирования. Целью данной статьи является попытка описания практики рефакторинга для SELECT-запросов языка SQL.
➡️ Читать дальше
@sqlhub
👍7❤3🔥1
Использование памяти для ядра СУБД SQL Server ограничивается парой параметров конфигурации, min server memory (MB) (минимальный объем памяти сервера в МБ) и max server memory (MB) (максимальный объем памяти сервера в МБ). Со временем и в обычных обстоятельствах SQL Server попытается запросить память до предела, установленного параметром max server memory (MB).
➡️ Читать дальше
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1
Запуск нового проекта Django с базой данных PostgreSQL
https://dev-gang.ru/article/zapusk-novogo-proekta-django-s-bazoi-dannyh-postgresql-cpt21qogeg/
@sqlhub
https://dev-gang.ru/article/zapusk-novogo-proekta-django-s-bazoi-dannyh-postgresql-cpt21qogeg/
@sqlhub
dev-gang.ru
Запуск нового проекта Django с базой данных PostgreSQL
Предварительное чтение: учебники, которые могут вам понадобиться
🔥6❤1👍1
За последние годы у меня накопился довольно обширный опыт работы с данными и тем, что сейчас называют Big Data.
Не так давно также разгорелся интерес к сфере интернет-маркетинга и Сквозной Аналитики, и не на пустом месте. Мой друг из действующего агентства снабдил меня данными и кейсами реальных клиентов, и тут понеслось.
Получается довольно интересно: Azure SQL + dbt + Github Actions + Metabase.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1
Работая над различными интересными задачами, мне только и приходилось слышать о существовании программ, которые работают с большими данными (в области действия одного сервера). И вот настал тот день, когда к нам обратился клиент, у которого сайт грузился очень долго. Задание для решения этой проблемы выдали моего коллеги. Немного прошло времени, до того как он подозвал меня к себе, с целью показать, столь диковинное для меня зрелище, связанное с объёмом таблиц, в которых находились данные после импорта категорий, характеристик, брендов товаров.
22 миллиона варианта категорий для нас показалось более чем приличным объёмом, тем более — вес таблицы с категориями получился чуть больше 1,6 Гиб. С такими размерами страницы начали грузиться дольше, чем хотелось бы. Ввиду того что, сроки на решение проблемы маленькие (чем быстрей тем лучше), руководство решило выделить на эту задачу, две единицы программистов, меня и моего коллегу. Разделив модуль на двоих, мне достались по объёму не самые сливки, но не менее ответственный участок, поскольку в нём — на загрузку данных, уходило значительное время.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🔥1
🐘 Функции и хранимые процедуры в SQL: зачем нужны и как применять в реальных примерах
https://proglib.io/p/funkcii-i-hranimye-procedury-v-sql-zachem-nuzhny-i-kak-primenyat-v-realnyh-primerah-2022-10-07
@sqlhub
https://proglib.io/p/funkcii-i-hranimye-procedury-v-sql-zachem-nuzhny-i-kak-primenyat-v-realnyh-primerah-2022-10-07
@sqlhub
Библиотека программиста
🐘 Функции и хранимые процедуры в SQL: зачем нужны и как применять в реальных примерах
Как устроены функции и хранимые процедуры и как их применять для повторного использования запросов.
👍8❤1🔥1
🔥 Полезнейшая Подборка каналов
🖥 Machine learning
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@Machinelearning_Jobs
🖥 Python
@pro_python_code – погружение в python
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
@python_django_work
🖥 Java
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
🖥 Javascript / front
@javascriptv - javascript изучение
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
👣 Golang
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
🖥 Linux
@linux_kal - чат kali linux
@linuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
🖥 SQL
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
📓 Книги
@programming_books_it
@datascienceiot
@pythonlbooks
@golang_books
@frontendbooksit
@progersit
@linux_read
@java_library
@frontendbooksit
📢 English for coders
@english_forprogrammers - Английский для программистов
🖥 Github
@github_code
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@Machinelearning_Jobs
@pro_python_code – погружение в python
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
@python_django_work
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
@javascriptv - javascript изучение
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
@linux_kal - чат kali linux
@linuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
📓 Книги
@programming_books_it
@datascienceiot
@pythonlbooks
@golang_books
@frontendbooksit
@progersit
@linux_read
@java_library
@frontendbooksit
@english_forprogrammers - Английский для программистов
@github_code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2❤1
Когда я начинал свою карьеру разработчика, моей первой работой стала DBA (администратор базы данных, АБД). В те годы, ещё до AWS RDS, Azure, Google Cloud и других облачных сервисов, существовало два типа АБД:
АБД инфраструктуры отвечали за настройку базы данных, конфигурирование хранилища и заботу о резервных копиях и репликации. После настройки БД инфраструктурный администратор время от времени «настраивал экземпляры», например, уточнял размеры кэшей.
АБД приложения получал от АБД инфраструктуры чистую базу и отвечал за её архитектуру: создание таблиц, индексов, ограничений и настройку SQL. АБД приложения также реализовывал ETL-процессы и миграцию данных. Если команды использовали хранимые процедуры, то АБД приложения поддерживал и их.
АБД приложений обычно были частью команд разработки. Они обладали глубокими познаниями по конкретной теме, поэтому обычно работали только над одним-двумя проектами. Инфраструктурные администраторы баз данных обычно входили в ИТ-команду и могли одновременно работать над несколькими проектами.
Читать дальше
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥1
Какой запрос выведет среднюю зарплату работников, если зарплата каждого высчитывается по формуле = (experience*1.5*10000)?
Anonymous Quiz
7%
SELECT (experience*1.5*10000) AS average_pay FROM employees;
38%
SELECT AVERAGE ((experience*1.5*10000)) AS average_pay FROM employees;
18%
SELECT AVGVALUE((experience*1.5*10000)) AS average_pay FROM employees;
21%
Ничего из перечисленного
15%
Посмотреть ответы
👍9🔥5❤1
Forwarded from Golang
Писать SQL руками или использовать ORM — тема очень спорная, и я опишу, как использовать первый подход максимально эффективно. А какой из подходов выбрать, думаю, каждый сам для себя уже решил.
Я не буду описывать то, что уже описано в документации, речь пойдёт про использование встроенного пакета для работы с базами данных database/sql и надстройки над этим пакетом под названием sqlx. Также будет пара примеров для работы только с PostgreSQL.
Всё описанное ниже хорошо работает в большом проекте, в котором очень активно используется SQL, когда мест, где запускаются запросы, больше 100, к примеру.
Примеры кода можно посмотреть в репозитории. Этот код я написал специально для статьи, так что, возможно, допустил где-то ошибки. Но он очень похож на то, что используется у нас в проекте.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1