Код
#подборки

Must read. 5 свежих англоязычных статей об SQL

SQL в Data Science, описание NoSQL и лайфхаки для скорости и эффективности.

Dana Moskvina / Skillbox Media

Каждую неделю мы отбираем для вас несколько свежих материалов из англоязычного интернета. В этом выпуске — самые интересные статьи об SQL, языке для работы с базами данных.

Data Science — вторая жизнь для SQL?

Зачем читать: узнать, за что SQL так ценят в Data Science.

Где читать: в блоге gitconnected на Medium.

SQL существует уже много лет, и некоторые думают, что он подобен давным-давно забытому динозавру. Однако это не совсем так — SQL всё ещё лидирует в своей нише и пока что для него не нашли достойной замены.

Хотя её ищут — например, набирают популярность базы данных на NoSQL, а Google выпустил язык Logica. И всё же пока у этих проектов не получилось выбиться в лидеры: да, в некоторых организациях используется комбинация из SQL и NoSQL, но совсем без SQL пока практически никто не работает.

Более того, у SQL — новая волна популярности благодаря активно растущему Data Science. Будучи самым популярным языком для работы с данными, SQL прочно прописался в категории must have хард-скиллов, которые нужны дата-сайентистам.

И дело тут не только в его популярности — есть и сугубо практические соображения. Он отлично дружит со сценарными языками, а ещё с Python и R — самыми распространёнными языками в Data Science.

SQL vs NoSQL: что такое графовые базы данных?

Зачем читать: узнать об устройстве SQL и его конкурентах.

Где читать: Towards Data Science на Medium.

Мы уже упомянули, что кроме SQL существует и так называемый NoSQL-подход. Их главное различие в том, что SQL работает с реляционными базами данных, а NoSQL — с альтернативами. Одна из них — это графовые базы данных, и в последнее время им уделяется всё больше внимания.

В чём же различия между реляционными и графовыми базами данных?

Структура: реляционные базы хранят данные в таблице и делают упор на сами объекты и их консистентности, а графовые хранят данные в сущностях, напоминающих связанные листы, и фокусируются на отношениях между объектами.

Подход к связям: в реляционных базах данных нет понятия связей между данными, а если вам очень нужно их обозначить, придётся использовать отдельную таблицу для представления этих связей. Структура же графовых баз данных напоминает объектно-ориентированную модель в программировании: у каждого объекта есть список связанных объектов. Благодаря этому они хорошо подходят для объектно-реляционного отображения (object-relational mapping).

6 полезных SQL-запросов для data-инженеров

Зачем читать: чтобы работать эффективнее.

Где читать: Better Programming на Medium.

Количество данных в мире растёт с каждым днём, а их анализ сейчас — одна из самых актуальных тем. Чтобы справляться с огромными объёмами, пригодится знание синтаксиса SQL. В статье разбирается шесть интересных запросов. Ниже приводим несколько из них.

Приём, который пригодится в работе с данными — это их сортировка по одному из параметров:

SELECT
 id,
 Amount,
 RANK() OVER (ORDER BY Amount desc)
FROM bill

Одни из самых важных показателей — дисперсия и стандартное отклонение. Вот удобный способ их посчитать:

SELECT
 VARIANCE(amount) AS var_amount,
 VAR_POP(amount) AS var_pop_amount,
 VAR_SAMP(amount) AS var_samp_amount,
 STDDEV_SAMP(amount) AS stddev_sample_amount,
 STDDEV_POP(amount) AS stddev_pop_amount,
FROM bill

Шпаргалка к командам:

VAR_POP — статистическая дисперсия;

VAR_SAMP — выборочная дисперсия;

STDDEV_SAMP — выборочное отклонение;

STDDEV_POP — статистическое отклонение.

И неувядающая классика — как рассчитать промежуточную сумму таблицы:

SELECT id,month
, Amount
, SUM(Amount) OVER (ORDER BY id) as total_sum
FROM bill

Лайфхак для увеличения скорости SQL-серверов

Зачем читать: разобраться в устройстве SQL-серверов и решить проблему долгой загрузки.

Где читать: на Redmond.

Медленная работа баз данных — одна из самых частых причин низкой скорости веб-приложений. Чтобы это исправить, стоит разобраться в том, как работают серверы баз данных и каким образом они используют память и CPU. И тут самое главное — понимание, что они очень любят сохранять всё-всё-всё в свой кэш. Кроме того, есть ещё и планы выполнения, в которых записаны действия системы, совершённые при запросе.

Бывает очень полезно заглянуть в них и разобраться, чем вообще занимается система. В частности стоит обратить внимание на операцию Key Lookup. Обычно она означает, что какого-то индекса не хватает — а значит, системе приходится просматривать соседние столбцы, чтобы найти нужное значение. Это неслабо тормозит всю работу.

Иногда достаточно добавить недостающие индексы — и скорость вырастает в несколько раз! Но, конечно, добавлять стоит только те индексы, которые действительно необходимы.

8 советов для эффективных запросов в MySQL

Зачем читать: понять, что делать, если проект вдруг стал тормозить.

Где читать: tiktoktech на Medium.

В начале работы у вас с проектом идёт конфетно-букетный период: вы весело пишете код, добавляете новые фичи и всё отлично работает. А потом проект масштабируется, количество данных увеличивается, а производительность снижается. Что теперь делать и как вернуть проекту былую лёгкость? Прежде чем погружаться в самые глубины, сверьтесь с этим списком — может, проблема вовсе не такая сложная:

  • Используйте SELECT с именами полей вместо SELECT*. Вторая команда просматривает все столбцы, а значит, выполняется дольше. А ещё она потенциально может привести к хаосу — если кто-то добавит новые столбцы.
  • Используйте JOIN для слияния таблиц — это гораздо эффективнее подзапросов. В отличие от последних, JOIN сначала находит общие элементы двух таблиц и только потом осуществляет слияние — так оно проходит гораздо быстрее.
  • Не забывайте про индексы — это поможет ускорить выполнение запросов в десятки раз! Особенно они пригодятся в запросах с WHERE или JOIN.
  • Используйте подстановочные операторы только в конце фразы. В противном случае система будет просматривать все строки и потратит на это кучу времени.

Что ещё интересного?

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована