Simulative – Telegram
7.39K subscribers
1.7K photos
70 videos
1 file
1.26K links
Привет! Мы — образовательная платформа в сфере аналитики Simulative: simulative.ru

Создаём курсы-симуляторы, где обучаем не на «апельсинках», а на кейсах из реального бизнеса.

Наш уютный чат: @itresume_chat
Поддержка: @simulative_support
Download Telegram
💉 Как программисту быть здоровым? 🤨

Сегодня, в Международный День Здоровья, мы решили особое внимание уделить не только правилам программирования, но и правилам заботы о cвоем здоровье. Программист, между прочим, - довольно опасная профессия!

Подробно ознакомьтесь с советами, которые мы для Вас подготовили, чтобы избежать многих неприятных недугов! 😉

Полезного чтения 😊

P.S. Имеются противопоказания. Перед применением посоветуйтесь с тим лидом.

#itresume
​​Рубрика «Вопросы с собеседований» 💥

Оператор EXPLAIN для оптимизации SQL-запросов

Ответ:

При выполнении SQL запроса система пытается «найти» оптимальный способ выполнения этого запроса. Посмотреть итоговый план выполнения Вы можете с помощью ключевого слова EXPLAIN.

1. КАК ИСПОЛЬЗОВАТЬ

Использовать оператор EXPLAIN очень просто - достаточно добавить его перед основным запросом. Например:

  EXPLAIN SELECT * from table t

2. ВЫВОД КОМАНДЫ

Результатом работы EXPLAIN в MySQL будет 10 полей (значения взяты для примера):

  id: 1
select_type: SIMPLE
table: categories
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 4
Extra:
1 row in set (0.00 sec)

Давайте разберем каждое из этих полей.

Id – порядковый номер для каждого SELECT’а внутри запроса (когда имеется несколько подзапросов)

Select_type – тип запроса SELECT (SIMPLE - без подзапросов и UNION, PRIMARY - внешний запрос в джоине, DERIVED - часть подзапроса в FROM, SUBQUERY - первый SELECT в подзапросе и так далее).

Table – таблица, к которой относится выводимая строка

Type — указывает на то, как MySQL связывает используемые таблицы (System – таблица имеет только одну строку, Eq_ref – все части индекса используются для связывания, All – для нахождения соответствующих строк используются сканирование всей таблицы и так далее). Именно в этом поле заложена пища для размышлений - здесь можно выявить слабое место.

Possible_keys – показывает индексы, которые могут быть использованы для нахождения строк в таблице.

Key– указывает на использованный индекс.

Key_len – длина индекса, которую оптимизатор MySQL выбрал для использования.

Ref – указываются столбцы или константы, которые сравниваются с индексом, указанным в поле key.

Rows – отображает число записей, обработанных для получения выходных данных. Еще одна «точка роста» - тут Вы можете понять, как стоить поработать над Вашими джоинами и фильтрами.

Extra – содержит дополнительную информацию, относящуюся к плану выполнения запроса.

3. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ

После EXPLAIN в запросе вы можете использовать ключевое слово EXTENDED и MySQL покажет вам дополнительную информацию о том, как выполняется запрос.

Чтобы увидеть эту информацию, вам нужно сразу после запроса с EXTENDED выполнить запрос SHOW WARNINGS. Наиболее полезно смотреть эту информацию о запросе, который выполнялся после каких-либо изменений сделанных оптимизатором запросов.


4. ДОКУМЕНТАЦИЯ

С полной информацией Вы можете ознакомиться в официальной документации MySQL (там все понятно написано и проиллюстрировано примерами) 👉🏻 http://bit.ly/3wCaBpi

Еще один полезный источник (еще и на русском языке!) - документация Postgres Pro 👉🏻 http://bit.ly/3utX6WT


#interview_problems #sql
💥 Глаголы R vs Операторы SQL 💪🏻

Как лучше работать с таблицами: с помощью R или SQL? Отвечаем - оба языка хороши!

Вместе с R4marketing проводим параллель между синтаксисом R и SQL, чтобы Вам было проще освоиться!

В карточках разбираем основные функции, библиотеки и инструменты для ловкой манипуляции данными 🤤

#sql #rstat #cheatsheet
🔥1
​​GROK IT!

Задача по R: Какой вспомогательной функции нет в глаголе dplyr::select?

Правильный ответ раскроем завтра 😏

#grokit
Какой вспомогательной функции нет в глаголе dplyr::select?
Anonymous Quiz
37%
everything()
16%
one_of()
26%
num_range()
21%
equals()
​​GROK IT! Ответ на задачу о глаголе dplyr::select 🔔

Вчера опубликовали вопрос: Какой вспомогательной функции нет в глаголе dplyr::select?

» everything()
» one_of()
» num_range()
» equals()


ОТВЕТ: equals()


💥 ОБЪЯСНЕНИЕ:

dplyr - это библиотека языка R для манипулирования данными, состоящая их глаголов, которые помогают решать наиболее распространенные задачи:

- mutate() добавляет новые столбцы или изменяет существующие
- select() выбирает нужные столбцы
- filter() выбирает строки на основе указанных условий
- summarise() агрегирует несколько строк
- arrange() изменяет порядок строк

В помощь к этим глаголам можно использовать дополнительные функции. Вот функции для глагола select():

👉🏻 ВЫБОР ОПРЕДЕЛЕННЫХ СТОЛБЦОВ

- everything(): Выбрать все переменные

- last_col(): Выбрать последнюю переменную

👉🏻 ВЫБОР СТОЛБЦОВ ПО ШАБЛОНУ ИМЕНИ

- starts_with(): Начинается с префикса

- ends_with(): Заканчивается суффиксом

- contains(): Содержит строку

- matches(): Соответствует регулярному выражению

- num_range(): Соответствует числовому диапазону

👉🏻 ВЫБОР СТОЛБЦОВ С НАЗВАНИЯМИ ИЗ ВЕКТОРА

- all_of(): Сопоставляет имена переменных в символьном векторе. Все имена должны присутствовать, иначе возникает ошибка out-of-bounds.

- any_of(): То же самое, что и all_of (), за исключением того, что для несуществующих имен не возникает ошибок.

- one_of() - менее точный аналог функций all_of() и any_of()

👉🏻 ВЫБОР СТОЛБЦОВ ПО РЕЗУЛЬТАТАМ НЕКОТОРОЙ ФУНКЦИИ

- where(): Применяет функцию ко всем переменным и выбирает те, для которых функция возвращает TRUE

Как видите, здесь есть все функции, кроме equals(). Такой функции в принципе не существует в библиотеке dplyr.

🗣 Однако, в библиотеке dplyr есть самостоятельная функция all_equal(), которая позволяет сравнивать фреймы данных, при желании игнорируя имена строк и столбцов.

-.-.-.-.-.-

❗️Таким образом, правильный ответ - equals()


#grokit
💥 Игра для настоящих программистов

В каждой сфере есть пул великих людей, которых стыдно не знать!

Вот и мы предлагаем Вам по 5 фактам и фотографии узнать знаменитого программиста. И кто же будет нашим первооткрывателем?...

1. Он автор уникальной монографии «Искусство программирования», которая стала учебником и настольной книгой программистов во всем мире.

2. Почетный профессор в Стэнфорде. Почётный доктор СПбГУ.

3. Он создал компилятор для ALGOL и получил за это 5,5 тысяч долларов.

4. Он известен как создатель системы TeX и языка METAFONT, предназначенных для набора и вёрстки книг научно-технической тематики

5. Существует премия, названная в его честь, присуждаемая за особый вклад в развитие основ информатики.

Вы уже догадались кто это? 😏