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

Сегодня ради интереса потестил sqlx и gorm для своего проекта. Суть

проекта, парсер берёт данные с разных сайтов, нормализует их и отправляет в postgres.
Это 300 000 записей за 1 час.
Что хочу сказать, судя по логам, скорость выполнения с sqlx и gorm идентична. Парсер закончил работу за одинаковое время.

Теперь вопрос, при каких нагрузках мне нужно юзать sqlx?

15 ответов

23 просмотра

Там может основное время база съела. Интересней было бы через пруф.

Попробуйте ент.

Igor- Автор вопроса
Zver
Попробуйте ент.

Тебе за рекламу платят? 😂 Попробую )

Igor
Тебе за рекламу платят? 😂 Попробую )

Нет. 😔 Просто интересно, там все таки генерация. Хотя все равно большая часть времени это обращение к базе.

"Парсер закончил работу за одинаковое время" - и вас это удивило? В краулерах большую часть времени отъедают сетевые запросы к сайтам. Запись в базу в соотношении с ними по времени ничтожно мала. На такой задаче производительность ORM, квери-билдеров и т.п. сравнивать бессмысленно

Igor
вопрос был в другом...

Я исходил из фразы "Сегодня ради интереса потестил sqlx и gorm для своего проекта"

Igor- Автор вопроса
Dmitriy Sviridov
Я исходил из фразы "Сегодня ради интереса потестил...

Тем не менее, имея опыт, вы не дали ответ на главный вопрос 👍

А в чем сложность непосредственно это посчитать для своего проекта? Например, вместо реального скачивания страниц скачать 1 страницу, а потом сохранить её в базу разными способами 100 тысяч раз. И вот тут можно будет увидеть отличия

Igor
Тем не менее, имея опыт, вы не дали ответ на главн...

"Теперь вопрос, при каких нагрузках мне нужно юзать sqlx?" - вообще без разницы. По сравнению с временем выполнения любого запроса оверхед Горма над sqlx ничтожен просто. Тут вопрос вкуса и вопрос в желании/нежелании юзать много магии в проекте

Dmitriy Sviridov
"Теперь вопрос, при каких нагрузках мне нужно юзат...

"Любого запроса" - это довольно сильное утверждение. Зависит же от того, что запрос делает

Mikhail Efimov
"Любого запроса" - это довольно сильное утверждени...

Да даже выборка по первичному ключу будет занимать больше времени, чем разница в скорости между Gorm и sqlx

Igor
Спасибо за ответ!

Я Gorm не юзаю, потому что, например, мне не нравится всякая внезапная логика вида "если в таблице в БД есть поле с названием updated_at и ты делаешь update, то туда автоматом будет подставлена дата и время". Или что-то в том духе такое было. Мне не нравится такая неявная логика, по крайней мере, когда я использую Go, где, лично для меня, предсказуемость всегда на первом месте. Если нужна всякая магия, то нафиг го вообще брать?)

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

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

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...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта