Задать вопрос
@RedrickSchuhart
Начинающий веб-разработчик

Какой необходимый уровень знаний sql для решения повседневных задач в бэкэнд разработке?

В общем начал изучать синтаксис замечательной СУБД - POSTGRESQL. Разобрался с основами языка(типы данных, связи таблиц, CRUD, DDL, подзапросы, вьюхи, джоины, функции sql и plsql и т.д) и назрел важный вопрос о том, на сколько глубоко стоит нырять в тему. С моей точки зрения большую часть логики можно описать в рамках основного языка программирования, после передав запрос к базе, не уверен в необходимости написания сложных функций и циклов на стороне базы. Я конечно понимаю, что знания лишними не бывают, но изучение всех фишек этой замечательной СУБД займет месяцы, которые можно потратить на освоение других технологий. Прошу людей, имеющих реальный боевой опыт решения бекенд задач, рассказать какими инструментами (речь именно об инструментах,предоставляемых СУБД) они пользуются, часто ли вы пишите функции, используете транзакции, циклы, или же вам хватает команд для получения данных из базы и их добавления.
  • Вопрос задан
  • 2867 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 5
gbg
@gbg
Любые ответы на любые вопросы
* select
* insert
* update
* delete

Поздравляю, вы великолепны!

Выкачивание базы на сторону приложения, и потом написание своей логики отбора - это очень, очень весело (нет).
Ответ написан
Комментировать
@Vitsliputsli
Зависит от "повседневных" задач. Если не столкнетесь с адептами логики в базе, то написание хранимых процедур не понадобится. Обработка на стороне приложения как правило дешевле, но фильтрация данных и агрегация чаще всего осуществляется на стороне СУБД. Кроме основных операторов SQL нужно понимание транзакций (в том числе их уровней), варианты хранения данных (таблицы связей, EAV и прочее), нормализация, связи (внешние ключи используются почти всегда), индексы (не только какие бывают, но и как организовано сбалансированное дерево b-tree, как влияет селективность на выборку), план запроса, оптимизатор и сбор статистики, какие бывают локи и из-за чего, и для каких изменений нужно снимать нагрузку. Ну и сопутствующие вещи - миграции, фикстуры, драйверы СУБД, подготовленные запросы, sql-инъекции и т.п. Для начала достаточно иметь общее теоретическое понимание этих вещей, реально будете их изучать на практике, в зависимости от проектов и их нагрузки с разной степенью глубины.
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
Чем больше скиллов хочешь, тем больше знаний нужно.
А то я видел кандидатов в сеньоры, но которые не знали про индекс, триггеры и планы запросов
Ответ написан
@mkone112
Начинающий питонист.
Я сейчас скажу страшную вещь - не обязательно знать sql чтобы работать беком.
Ответ написан
@d-stream
Готовые решения - не подаю, но...
В силу широко распространенного "ща я тут все 100500 миллионов записей вытащу и на месте в цикле все посчитаю" - не, sql не очень нужен)
Но большей частью это от засилья бэкеров не освоивших sql,.. ну и не щупавших что такое добывать данные через тонкий канал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы