Уйти в АйТи
Уйти в АйТи
  • 24
  • 74 261
7 Ошибок, Которые ЧАСТО Совершают Начинающие Разработчики
База знаний по разработке в telegram t.me/lets_goto_it
00:13 Использование SELECT * FROM table
02:25 Одиночные запросы вместо JOIN-ов
06:28 Неиспользование агрегатных функции и группировок
10:54 Использование зарезервированных ключевых слов
11:25 Случайно забыл WHERE в DELETE / UPDATE запросах
14:57 Сравнение с NULL (IS NULL, IS NOT NULL)
17:28 Не сохранил сложный SQL запрос
В мире баз данных SQL является неотъемлемой частью работы, но даже опытные специалисты могут допустить ошибки, которые могут привести к нежелательным последствиям. В этом видео мы рассмотрим 7 распространенных проблем и ошибок при работе с SQL, а также предложим практические рекомендации по их избежанию.
---
Телеграм - t.me/lets_goto_it
Дзен - dzen.ru/lets_goto_it
Переглядів: 860

Відео

Как быстро вставить 1 млн. строк в таблицу? (2023)
Переглядів 2,2 тис.Рік тому
База знаний по разработке в telegram t.me/lets_goto_it 00:00 - Кому проблема актуальна 01:20 - Наивный медленный вариант вставки по одной записи 06:47 - Групповая вставка чанками 12:10 - Групповая вставка через json-array-elements 17:54 - Copy IN Важно иметь в рукаве козыри и знать как можно кратно увеличивать производительность вставок в таблицы. Принципы массовых вставок как правило годятся д...
Гибкие отчеты на Оконных функциях SQL. PANDAS не всегда нужен?
Переглядів 5 тис.Рік тому
База знаний по разработке в telegram t.me/lets_goto_it 00:00 Вступление 01:30 Примеры функций 02:03 Добавление таблицы для примера 03:42 Функция AVG и PARTITION BY 07:38 Функция first_value и ORDER BY внутри PARTITION BY 11:27 Функция COUNT с OVER для получения total rows 15:15 Функция row_number 17:17 Сумма с нарастающим итогом Оконные функции / Window functions. Аналитическая сторона баз данн...
Как ускорять SQL запросы? Explain и оптимизация запросов SQL
Переглядів 12 тис.Рік тому
База знаний по разработке в telegram t.me/lets_goto_it 00:00 Что такое Explain в базах данных? 00:38 Первый пример explain с JOIN 02:18 Делаем базе больно - добавляем 5 млн записей 04:00 Добавляем тестовые связи 05:10 Второй пример с последовательным сканированием (Sec Scan) 06:30 Оптимизация через добавление индексов 11:15 Оптимизация через LEFT JOIN LATERAL 14:52 Оптимизация через CTE и JOIN ...
Плюсы, минусы и ограничения хранимых процедур (функций) SQL
Переглядів 13 тис.Рік тому
Плюсы, минусы и ограничения хранимых процедур (функций) SQL
Триггерные процедуры (функции) SQL
Переглядів 10 тис.Рік тому
Триггерные процедуры (функции) SQL
Group By, Having, Rollup, Like, Common Table Expression (CTE) SQL
Переглядів 2,1 тис.Рік тому
Group By, Having, Rollup, Like, Common Table Expression (CTE) SQL
Left and Inner JOIN, Ambiguous column, String functions
Переглядів 2,3 тис.Рік тому
Left and Inner JOIN, Ambiguous column, String functions
Базовый SQL для начинающих: Select Expression, Order By, Limit / Offset
Переглядів 1,6 тис.Рік тому
Базовый SQL для начинающих: Select Expression, Order By, Limit / Offset
Старт и бекап БД PostgreSQL с Docker
Переглядів 7 тис.Рік тому
Старт и бекап БД PostgreSQL с Docker

КОМЕНТАРІ

  • @sofiya41.
    @sofiya41. 2 дні тому

    Здравствуйте, расскажите пожалуйста про хранимые пользовательские функции в постгрес🙏

  • @Seraf_
    @Seraf_ 7 днів тому

    Просто СУБД не преисполнилась еще

  • @brainlesspolitican743
    @brainlesspolitican743 9 днів тому

    Слишком простые случаи вы рассматриваете) Помимо атомарности в acid еще 3 буквы. Но и помимо ACID, система транзакционности, это довольно глубокая тема, которая перетекает в mvcc , mvcc перетекает в изолированность и тд. Но документацию про доку соглашусь))

  • @user-xr2vl5wo7w
    @user-xr2vl5wo7w 16 днів тому

    Это топовое объяснение🔥

  • @selub1058
    @selub1058 Місяць тому

    Круто ❤. Спасибо что делитесь опытом.

  • @crawner6198
    @crawner6198 Місяць тому

    Очень полезное видео! Автор красавчик, все структурировано, понятно и голос приятный! Спасибо, помогли

  • @kura3327
    @kura3327 Місяць тому

    это goland что ли?)

    • @lets_goto_it
      @lets_goto_it Місяць тому

      Pycharm или WebStorm, точно не помню (

  • @habib_sultan
    @habib_sultan Місяць тому

    Благодарим! Очень полезно основательно и без воды. Можно еще записать видос про лучшие практики по работе с большими БД (с подробным пояснением).

    • @lets_goto_it
      @lets_goto_it Місяць тому

      Спасибо за поддержку! Хорошо, запишу в задачи для себя

  • @scum9180
    @scum9180 2 місяці тому

    Что такое Seq Scan? Не повлияет ли новосозданный индекс на дальнейшую работу с таблицей? И не уволят ли с работы, если создать такой индекс 😂

    • @arturgspb
      @arturgspb 2 місяці тому

      Seq scan - последовательное сканирование без использование индекса. Любой индекс надо тестировать на своих данных, так и обоснуете перед начальством и командой 😉

  • @wasabi_fox
    @wasabi_fox 2 місяці тому

    спасибо!

  • @karinalazareva6123
    @karinalazareva6123 2 місяці тому

    жаль, нет примеров с временными таблицами( например, в субд MS SQL - таблицы через #, ##

    • @lets_goto_it
      @lets_goto_it 2 місяці тому

      Вы про WITH Queries (Common Table Expressions), CREATE TEMPORARY TABLE или что-то иное?

    • @karinalazareva6123
      @karinalazareva6123 2 місяці тому

      @@lets_goto_it cte в видео видела, использую другую субд sql server, там есть возможность создать лок таблицы # или глобал ##, они же тоже помогают в оптимизации или отличий нет от cte в плане производительности? в Pg я так поняла редко используют таблицы типа #, ## (CREATE TEMPORARY TABLE)?

    • @karinalazareva6123
      @karinalazareva6123 2 місяці тому

      @@lets_goto_it про TEMPORARY TABLE. cte и TEMPORARY TABLE есть отличия в контексте производительности?

  • @Chirickk
    @Chirickk 3 місяці тому

    Опять не понял. Для чего мне вообще паковать все в контейнеры? Я так понимаю, это всё для молодых, кто в it недавно.

    • @lets_goto_it
      @lets_goto_it 2 місяці тому

      Для всего свой инструмент, конечно. Одного правильного решения нет и пока не предвидится. При этом для большинства обычных проектов контейнеризация это, ИМХО, скорее благо. Если речь идет про сайты и подобное. А деплой по FTP скорее не благо. Для деплоя баз данных и подобного я бы сильно подумал из--за оверхедов на io диск,а например, но плюсы все равно будут, например для dev стендов. Всегда нужно смотреть на конкретную ситуацию и контекст.

    • @Chirickk
      @Chirickk 2 місяці тому

      @@lets_goto_it а для сайтов где благо? Вот берём lamp. Что, для каждого сайта/версии упаковывать всю структуру в докер? 🤦‍♂️ Что за бред? Никогда такого не делали. Любой нормально настроенный apache или nginx обслуживает десятки-сотни сайтов быстрее, чем весь фарш запихивать в контейнер для одного лиш инстанса. Так же и любая нормально настроенная СУБД будет десятки баз тянуть быстрее. Распределённая технология для этого и существует уже много лет. Что за больная панацея с этими докерами? Никого не смущает, что помимо всего фарша контейнер несёт в себе ещё минимальную ОС? Это получается куча виртуалок всего лишь для одного приложения ещё в рамках другой виртуалки. Мы аппаратными ресурсами будем так расплевываться? Или я что-то не понимаю 🤷‍♂️ Как и сказал выше, докеры - это глупая панацея для новых айтишников. Сторожилы, кто сам вручную конфигурил дисковые полки, массивы, гипервизоры, поднимал кластеры и в них виртуалки потом (для каждой из которых в зависимости от нужд была своя конфигурация, вплоть до проброса физ. лунов), смотрит на бессмысленное использование докеров с подозрением.

  • @user-di4lm1dp9y
    @user-di4lm1dp9y 3 місяці тому

    Все превосходно но бро, прошу убери звук на фоне. сильно мешает понять контент((

    • @lets_goto_it
      @lets_goto_it 3 місяці тому

      Спасибо! Да, если такая проблема к сожалению и готовый видос не поправить к сожалению. ( В более свежих звука или нет или он оч тихо сделан. Может быть попозже сниму ремейк =)

  • @vakrokodil
    @vakrokodil 3 місяці тому

    спасибо!😊

  • @edmundslukasevics4623
    @edmundslukasevics4623 3 місяці тому

    Спасибо, но пригодились бы таймкоды в видео :)

    • @lets_goto_it
      @lets_goto_it 3 місяці тому

      Спасибо за комментарий 👍 Таймкоды там есть, но, видать низковато, поднял выше

    • @edmundslukasevics4623
      @edmundslukasevics4623 3 місяці тому

      @@lets_goto_it аа, вижу в комментариях, в видео искал :)

  • @anniesunny8398
    @anniesunny8398 3 місяці тому

    Мемы - топ😂

  • @Vladimir_Posner
    @Vladimir_Posner 3 місяці тому

    Polars мб лучше для джойнов

    • @lets_goto_it
      @lets_goto_it 3 місяці тому

      В каких-то случаях, да, конечно. Одного правильного инструмента под всё никогда нет. Polars скорее всего может быть оправдан, если у вас датасайнс сложный и вам нужна гибкость или нет возможности подключиться к БД (или она под дикой нагрузкой) или делать join или группировку неэффективно. В обычных же случаях лично я предпочел бы простой join, группировку прямо в БД или ее реплике.

  • @Vladimir_Posner
    @Vladimir_Posner 3 місяці тому

    Спасибо

  • @fedordostoevskiy4209
    @fedordostoevskiy4209 3 місяці тому

    Привет! Если есть возможность пробежать по литературе полезной.

    • @lets_goto_it
      @lets_goto_it 3 місяці тому

      Привет! Тут одного правильного ответа нет, к сожалению. Для меня это издревле был хабр + мануал самого PG. Сейчас появилось много интересного, обращу внимание на документы ребят из postgrespro (они одна из разработчиков постргресса) postgrespro.ru/education/books и postgrespro.ru/education/courses

  • @evgenievgeni2016
    @evgenievgeni2016 3 місяці тому

    А не кажется ли вам, что это борьба не с причиной, а со следствием? Зачем оставлять null в колонке? Чтобы что? Понятно, что цель показать частичный индекс, но пример не особо.

    • @lets_goto_it
      @lets_goto_it 3 місяці тому

      Да, вы правы, без null мир был бы лучше! Тем не менее у людей в реальных проектах вполне себе может быть такая ситуация и это связано с разными причинами: кто-то хочет работать с более явным пониманием заполнены ли данные или нет, чем сравнение с условным 1970-01-01 00:00:00, у кого-то есть необходимость такого хранения например по ТЗ или еще как-то. Кажется, что стоит рассказывать как справляться с такой проблемой, если она возникла. Тем не менее, я с вами согласен - важно помнить, что наличие NULL может усложнить обработку данных и привести к различным проблемам. Поэтому, при принятии решения об использовании NULL, необходимо тщательно взвесить все за и против.

  • @binbinbinbin123
    @binbinbinbin123 4 місяці тому

    Просто, кратко, ясно и практично! Спасибо большое))) Первый раз за много лет пишу коммент в youtube)))

  • @uliavvvvvvvvvv
    @uliavvvvvvvvvv 4 місяці тому

    Большое спасибо за ваш курс,за ваш труд!Вас очень интересно слушать,а главное полезно)

    • @lets_goto_it
      @lets_goto_it 4 місяці тому

      Спасибо 😊. Готовлю новые выпуски

  • @felakos1568
    @felakos1568 4 місяці тому

    Даже если ЯП разрешает "запивать водку пивом", я вежливо отказываюсь. Ну, вы меня поняли)

    • @lets_goto_it
      @lets_goto_it 4 місяці тому

      для всего свои инструменты, это точно

  • @felakos1568
    @felakos1568 4 місяці тому

    Бро, ты красавчик. Спасибо за помощь.

  • @yarik83men51
    @yarik83men51 4 місяці тому

    Тоже работаю на удаленке, удобно, гуляю по 3 км после рабочего дня.

    • @lets_goto_it
      @lets_goto_it 4 місяці тому

      Здорово! Если время позволяет, то это супер просто!

  • @fedordostoevskiy4209
    @fedordostoevskiy4209 4 місяці тому

    Это одно и тоже приложение-монолит на разных серверах или микро сервисы?

    • @lets_goto_it
      @lets_goto_it 4 місяці тому

      Монолит также в целом можно и нужно запускать в несколько инстансов. Однако это может быть нетривиальной задачей по сравнению с более компактным микросервисом. Однако с микросервисами отдельная боль - за ними надо отдельно следить (monitoring и observability) и вообще следить вся всеми их *bility отдельно по каждому. Мультиинстанс и распределенные блокировки я делал и с монолитом и с микросервисами

  • @gudjihn
    @gudjihn 4 місяці тому

    Спасибо за видео! Но причём тут ссылка на Доку про copy?) Не делали explain своей вставки?) Как на уровне приложения изменить долгие строковые update на batchb update?

    • @lets_goto_it
      @lets_goto_it 4 місяці тому

      Пожалста! COPY IN позволяет оч быстро потоково загружать данные в БД, COPY OUT оч быстро выгружать также потоково. Вы нашли в explain для этих методов что-то интересное? Про оптимизацию долдих апдейтов можно, кстати, видос записать отдельный - спасибо за идею! В целом обычно стратегия такая же как и с delete-ами, а именно - разбить группу строк на подгруппы и обновлять/удалять по отдельности пачками.

  • @eb6006
    @eb6006 5 місяців тому

    Интересная вещь! Не знал про такое! Выглядит как класная идея!

  • @user-uu8hc9hj4c
    @user-uu8hc9hj4c 5 місяців тому

    1С можете покурить?

    • @lets_goto_it
      @lets_goto_it 5 місяців тому

      Ну там совсем свой мир со своими инструментами и подходами, не подскажу, к сожалению, вообще

  • @user-ps4bt3vh9q
    @user-ps4bt3vh9q 6 місяців тому

    не прав насчет сравнениия тeхт и варчар есть разница.

    • @lets_goto_it
      @lets_goto_it 5 місяців тому

      Вы зоркий глаз ;) Спасибо за комментарий. Да, она есть, но как по мне несущественная. Если строки у вас не будут конскими, то они не попадут в TOAST. В доке ( postgrespro.ru/docs/postgrespro/current/datatype-character ) написано "По быстродействию эти три типа практически не отличаются друг от друга, не считая большего размера хранения для типа с дополняющими пробелами и нескольких машинных операций для проверки длины при сохранении строк в столбце с ограниченной длиной. Хотя в некоторых СУБД тип character(n) работает быстрее других, в Postgres Pro это не так; на деле character(n) обычно оказывается медленнее остальных типов из-за большего размера данных и более медленной сортировки. В большинстве случаев вместо него лучше применять text или character varying."

  • @ibrahimoglu
    @ibrahimoglu 6 місяців тому

    👍

  • @passerist
    @passerist 7 місяців тому

    Я плакал и ждал, когда автор нажмет Shif+F7, а так же увидит, что он выбирает всю таблицу, при этом ждет от слона использования индекса. лицорука

    • @lets_goto_it
      @lets_goto_it 7 місяців тому

      Можете указать тайминг, чтобы я проверил?

    • @user-zb9ci6qu8r
      @user-zb9ci6qu8r 7 місяців тому

      9ая минута, думаю

    • @lets_goto_it
      @lets_goto_it 7 місяців тому

      Спасибо за ваш коммент, я проверил - все хорошо. Это просто стиль подачи информации - от оч плохого наивного решения с разбором почему не работает до поиска лучшего решения. Собственно ровно так, как и бывает у всех в жизни. Посмотрите до 18й минуты и вы увидите все заранее подготовленные патчи и запросы - я их использую для следующих итераций оптимизации с разбором того как все же заставить базу нормально выполнять всё.

  • @andreimikhalkevich5633
    @andreimikhalkevich5633 7 місяців тому

    спасибо автору, отличная подача информации, видео очень помогают в работе, переодически просматриваю, когда нужно оптимизировать или ускорить запросы

  • @TheDavBag
    @TheDavBag 7 місяців тому

    хотелось про эскплейн, конечно

    • @lets_goto_it
      @lets_goto_it 7 місяців тому

      Как-то не сложилось у меня чтение в текстовом формате. Вы же про это? Если да, то для чего вам именно текстом? В pg admin есть пара кнопок для нормальной визуализации. Я тут только про одну рассказываю.

    • @TheDavBag
      @TheDavBag 7 місяців тому

      @@lets_goto_it хотелось про планировщик, почему индексы не всегда работают (процентаж выборки), про буферы, почему важно иметь кеш запросов, про характер выборки и первоначальную цель запроса, как с помощью EXPLAIN можно изменить понимание тог, что должен делать запрос. Даже простое объяснение отличия EXPLAIN от ANALYZE

  • @TheDavBag
    @TheDavBag 7 місяців тому

    прикольно, всякие "фишечки" типа ORDER BY в функциях не знал

  • @omg-go4vf
    @omg-go4vf 7 місяців тому

    еще как я понимаю можно использовать inner join как средство фильтрации, то есть сокращения выборки для удешевления последующих фильтраций. Соответственно порядок inner join будет иметь значение. Я верно понимаю? комментарий в поддержку

    • @lets_goto_it
      @lets_goto_it 7 місяців тому

      Да можно, но в отчетах как-то проблемы с ним часто возникают на реальных данных. LEFT join при отсутствии данных вернет null и вы этот null увидите и пойдете разбираться, в inner join срежет и всё =) Конечно, ситуации бывают разные, но опят показывает, что часто лучше себя показывает LEFT - так как если данные в порядке, то и все норм, а если не в порядке, то приложение упадет в худшем случае или, если вы знаете, что там может упасть, то запишете warning лог и будете обрабатывать следующую запись. Вот вам еще тру стори - всегда, когда у вас в приложении есть метод fetchOne, который должен вернуть одну строку или null, если ее нет, обязательно поставьте проверку, на случай, если вернулось больше одной строки и или падайте в том месте или пишите error лог, так как скорее всего что-то не так. Если подытожить - и left join и история с fetchOne призваны спасти вас от неправильной работы приложения / утере или порче данных.

  • @omg-go4vf
    @omg-go4vf 7 місяців тому

    пример с json впечатляющий! Вы говорите что он накладный, а вот по сравнению с тем, как это будет делать python? как я понимаю, python помедленее будет...

    • @lets_goto_it
      @lets_goto_it 7 місяців тому

      Все будет зависеть от того, что у вас еще на это БД выполняется. Питон очень легко горизонтально масштабировать под нагрузкой - запускаете еще pod-ов в Kubernetes с приложенькой и всё, а с БД так не пойдет. Т.е. надо смотреть характер нагрузки и общий тренд по использованию вашей БД, мб вам просто нужны асинхронная реплика БД для того, чтобы гонять там аналитические запросы на чтение - в этом случае это просто масштабируется и основное приложение вообще глючить не будет. В целом же я сторонник обрабатывать данные там, где они хранятся и поменьше выгребать в приложение. При этом если у вас БД будет не считать, а заниматься json encode / json decode все время, то тоже наверное ничего хорошего) Это не самая простая операция для PG, а еще хуже становиться, когда у вас JSON больше 2Kb - это вообще караул. Давно хочу про JSON и JSONB видос записать

  • @omg-go4vf
    @omg-go4vf 7 місяців тому

    Возможно ранний вопрос, но не ясно как оценить расходы на запрос самой бд. Понятно что она быстрая и мощная и явно лучше написать сложный запрос, чем в питоне гонять из словаря в словарь, однако, все равно, не ясно. Вот например фильтр where created_at + interval '60 day' >= NOW() Кажется эта функция тяжелая на больших данных, так как надо делать много вычислений налету помимо остального. Как я понимаю функция которая делает выборку where created_at >= NOW() AND created_at < NOW() + INTERVAL'30 day' применяет вычисление лишь однажды и получает ответ значительно быстрее

    • @lets_goto_it
      @lets_goto_it 7 місяців тому

      Ход мыслей у вас в нужном направлении, но на самом деле точнее всего вам скажет Explain. У меня есть видео на эту тему - ua-cam.com/video/bgLSn23g768/v-deo.html При этом всем будет важна версия БД, так как тут как в ЯП - их разработчики не сидят без дела и вносят правки в планировщик запросов и делают другие эвристические оптимизации. Поэтому конкретно на вашем примере created_at + interval '60 day' >= NOW() БД вполне может решить перекинуть действия с интервалом в правую часть выражения со знаком минус. В общем каждый тяжелый запрос хорошо бы проверить, но вы правы - лучше всего не добавлять БД работы и помогать ей проще находить константные выражения.

  • @omg-go4vf
    @omg-go4vf 7 місяців тому

    начну смотреть и конспектировать. Не так уж и просто было вас найти. Думаю отличный курс. За выходные справлюсь!

  • @Deletedeletedelete
    @Deletedeletedelete 8 місяців тому

    какой операционкой ползуетесь?

    • @arturgspb
      @arturgspb 8 місяців тому

      macos

    • @lets_goto_it
      @lets_goto_it 7 місяців тому

      MacOs с 2013-го. Начинал в 2008 на Windows, потом было много разных линуксов, потом пересел на macos и она для меня вне конкуренции теперь. Там и красиво и нормальный терминал и это все же unix-овое семейство, что чуть упрощает некоторые дела. Есть много коллег, которые на Windows работают и у них тоже все норм, ра исключением того, что не все ПО нормально под windows работает, но конкретно у них все пучком уже. На серверах только linux

  • @Deletedeletedelete
    @Deletedeletedelete 8 місяців тому

    Луна в третьем доме 1:06 Ахаххахах

  • @vladislavstepanov7591
    @vladislavstepanov7591 10 місяців тому

    Еще можно было рассказать про отключение тригеров в базе, удаление индексов, удаление foreign связей на время копирования А после копирования вернуть в состояние как было Такое бывает нужно при миграции базы

    • @lets_goto_it
      @lets_goto_it 10 місяців тому

      Спасибо! Вы все верно подметили. Бывает, что надо восстанавливать БД с отключенными триггерами, чтобы быстрее отработал pg_restore. Для этого у этой утилиты есть спец. параметр

  • @StikMrShtormer
    @StikMrShtormer 10 місяців тому

    Классный видос! Расскажи о JSONB больше, о том как правильнее использовать и как это по быстродействию?

    • @lets_goto_it
      @lets_goto_it 10 місяців тому

      Да, запишу обязательно. Тема оч сложная и глубокая на самом деле. Если в двух словах, то выбирать лучше jsonb, а не json. Не хранить там больше 2kb и всегда выносить первичный ключ отдельно, чтобы не было таблицы из одного поля. Индексы тоже не забывай - там можно

  • @user-ee8ek3xx2r
    @user-ee8ek3xx2r 10 місяців тому

    Подписался) как ты просил 😎🖐🏻 надеюсь продолжишь 🙂

  • @gpankov
    @gpankov 10 місяців тому

    10 минут посмотрел так и не понял как функции писать

    • @lets_goto_it
      @lets_goto_it 10 місяців тому

      Посмотрите до конца

  • @zosyanax
    @zosyanax 10 місяців тому

    Я как раз обычно иду лбом на переписывание всего кода сразу, подход рефакторинга с триггерами взял на вооружение)

    • @lets_goto_it
      @lets_goto_it 10 місяців тому

      Главное не забыть их описать и постараться выпилить со временем) Чтобы сильно много они не разрасталось

  • @user-wz9vl9li7q
    @user-wz9vl9li7q 10 місяців тому

    Спасибо за урок!

  • @devospos
    @devospos 11 місяців тому

    В Python это делается с помощью библиотеки pandas очень легко и без циклов

    • @lets_goto_it
      @lets_goto_it 11 місяців тому

      С пандасом я не сравнивал честно говоря, но скорее всего по скорости это будет сильно сильно дольше работать, чем стримминговая вставка. Я про вставку 1 или 10 млн. конечно. Если вы делали замеры - поделитесь

    • @Leha_from_Zavod
      @Leha_from_Zavod 7 місяців тому

      ​@@lets_goto_itможете сказать какое прикладное значение таких вставок,в основном работа с большими данными?

    • @lets_goto_it
      @lets_goto_it 7 місяців тому

      @@Leha_from_Zavod да, когда вам надо вставить в БД много тысяч сток, то без чего-то подобного никуда. Одиночными инсертами уже не пойдет скорее всего . Я записывал видео про вставку миллиона строк разными вариантами, посмотрите - ua-cam.com/video/FOdTdviM0A8/v-deo.html

  • @baxiskerimzade2690
    @baxiskerimzade2690 11 місяців тому

    Было бы классно если бы Вы записали курс по нему )