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. В статье разбирается шесть интересных запросов. Ниже приводим несколько из них.
Приём, который пригодится в работе с данными — это их сортировка по одному из параметров:
Одни из самых важных показателей — дисперсия и стандартное отклонение. Вот удобный способ их посчитать:
Шпаргалка к командам:
VAR_POP — статистическая дисперсия;
VAR_SAMP — выборочная дисперсия;
STDDEV_SAMP — выборочное отклонение;
STDDEV_POP — статистическое отклонение.
И неувядающая классика — как рассчитать промежуточную сумму таблицы:
Лайфхак для увеличения скорости SQL-серверов
Зачем читать: разобраться в устройстве SQL-серверов и решить проблему долгой загрузки.
Где читать: на Redmond.
Медленная работа баз данных — одна из самых частых причин низкой скорости веб-приложений. Чтобы это исправить, стоит разобраться в том, как работают серверы баз данных и каким образом они используют память и CPU. И тут самое главное — понимание, что они очень любят сохранять всё-всё-всё в свой кэш. Кроме того, есть ещё и планы выполнения, в которых записаны действия системы, совершённые при запросе.
Бывает очень полезно заглянуть в них и разобраться, чем вообще занимается система. В частности стоит обратить внимание на операцию Key Lookup. Обычно она означает, что какого-то индекса не хватает — а значит, системе приходится просматривать соседние столбцы, чтобы найти нужное значение. Это неслабо тормозит всю работу.
Иногда достаточно добавить недостающие индексы — и скорость вырастает в несколько раз! Но, конечно, добавлять стоит только те индексы, которые действительно необходимы.
8 советов для эффективных запросов в MySQL
Зачем читать: понять, что делать, если проект вдруг стал тормозить.
Где читать: tiktoktech на Medium.
В начале работы у вас с проектом идёт конфетно-букетный период: вы весело пишете код, добавляете новые фичи и всё отлично работает. А потом проект масштабируется, количество данных увеличивается, а производительность снижается. Что теперь делать и как вернуть проекту былую лёгкость? Прежде чем погружаться в самые глубины, сверьтесь с этим списком — может, проблема вовсе не такая сложная:
- Используйте SELECT с именами полей вместо SELECT*. Вторая команда просматривает все столбцы, а значит, выполняется дольше. А ещё она потенциально может привести к хаосу — если кто-то добавит новые столбцы.
- Используйте JOIN для слияния таблиц — это гораздо эффективнее подзапросов. В отличие от последних, JOIN сначала находит общие элементы двух таблиц и только потом осуществляет слияние — так оно проходит гораздо быстрее.
- Не забывайте про индексы — это поможет ускорить выполнение запросов в десятки раз! Особенно они пригодятся в запросах с WHERE или JOIN.
- Используйте подстановочные операторы только в конце фразы. В противном случае система будет просматривать все строки и потратит на это кучу времени.
Что ещё интересного?
- Подборка продвинутых команд SQL для data-специалистов.
- Гайд — сравнение SQL и NoSQL.