170 похожих чатов

Insert into t1 (col1, col2) values (?, ?);

29 ответов

17 просмотров

и как это по Вашему работает ?

Во!

Да, но когда таких запросов в базу наlо фигануть сотню тысяч в секунду, уже не до жиру - гоним plain SQL.

c
зачем, когда есть prepared statement?

потому что оно работате на рефлексии

serg- Автор вопроса
Igor Shekalev
Да, но когда таких запросов в базу наlо фигануть с...

надо только посмотреть как такой запрос собрать insert into t1 (col1, col2) values (?, ?), (?, ?) ..... (?, ?);

Alex Kharlamov
плюсую

Когда запросов на вставку сотни тысяч, впору подключать copy

Владимир Столяров
Когда запросов на вставку сотни тысяч, впору подкл...

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

c
зачем, когда есть prepared statement?

В блоке values можно положить не одну строку, а много (сколько именно - зависит от базы и е настроек). Это сильно быстрее параметризованных statements.

Igor Shekalev
А в какой версии стандарта SQL он появился?

Это фичи отдельных СУБД, но речь про стандартные решения вроде и не шла

Владимир Столяров
Это фичи отдельных СУБД, но речь про стандартные р...

А человек и не сказал какая у него база. И я не сказал, но у нас продукты работают с 10-ком популярных СУБД.

Igor Shekalev
В блоке values можно положить не одну строку, а мн...

что мешает использовать батч запросы с prepared statements? не будет многократный парсинг SQL быстрее однократного

c
что мешает использовать батч запросы с prepared st...

Это практически опыт или предположение? Если первое, то на каких системах и драйверах проверялось? Ведь все эти ? еще и ресолвить надо. И квотить, и типы конвертировать.

Igor Shekalev
В блоке values можно положить не одну строку, а мн...

А это практически опыт или предположение? Если первое, то на каких системах и драйверах проверялось?

Igor Shekalev
Это практически опыт или предположение? Если перво...

> Ведь все эти ? еще и ресолвить надо. И квотить, и типы конвертировать. а если не prepared, то не надо что ли?

c
А это практически опыт или предположение? Если пер...

Практический опыт. Все базы, поддерживающие SQL начная со стандарта 92.

c
> Ведь все эти ? еще и ресолвить надо. И квотить, ...

Надо, но это в наших руках и мы умеем делать это оптимальным образом.

Igor Shekalev
Надо, но это в наших руках и мы умеем делать это о...

каким таким оптимальным образом вы типы собрались на клиенте конвертировать?

c
каким таким оптимальным образом вы типы собрались ...

За счет знания о типах колонок в таблице. Но это уже кишочки пошли. Собственно я вот как сформулирую: если у вас большой insert с тысячами строк на борту, выполняемый 1 раз, то собрать его вручную и выполнить у меня получается быстрее чем prepare + resolving параметров.

Igor Shekalev
За счет знания о типах колонок в таблице. Но это ...

на какой СУБД а PREPARE вы как выполняли? с одиночными инсертами?

c
на какой СУБД а PREPARE вы как выполняли? с одиноч...

Postgre, Oracle, MS SQL, MySQL. Возможно, ребята для SQLite проверяли и DB2, но точно не скажу. Нет, prepare для всех 10 тысяч строк в одном statement. По одной вставлять еще медленнее, чем эти два варианта.

serg- Автор вопроса
Igor Shekalev
Postgre, Oracle, MS SQL, MySQL. Возможно, ребята д...

prepare делается один раз вся фишка в экзеке res, _ := stmt.Exec(vals...)

serg
prepare делается один раз вся фишка в экзеке res, ...

Так в данном случае и exec у нас 1 раз.

serg- Автор вопроса

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта