Nik
Если после останутся вопросы - заходи еще😉
Антон
Это семейство хранилищ. Лучше сходи погугли
так а поконкретней что лучше выбрать? по описаниям я все равно не пойму что для меня лучше, а постоянно переучиваться или учить все, у меня времени не хватает. По этому нужно что нить одно)
Антон
Какую нагрузку планируешь?
личный учебный проект, пару человек зайдет посмотреть, что я с дргом накуралесим)
Nik
Хоть sqllite
Nik
Хоть в файлик)
Антон
Хоть sqllite
во) я ее использую как базу данных) значит в нее же и сессии запихнем, только в отдельную базу
Nik
Полезный опыт будет
Антон
Полезный опыт будет
мне сначала разобраться в логике процесса нужно, понты подождут)
Michael
Alexander
так а поконкретней что лучше выбрать? по описаниям я все равно не пойму что для меня лучше, а постоянно переучиваться или учить все, у меня времени не хватает. По этому нужно что нить одно)
Проще, проще надо, особенно для маленького проекта "только для себя". memcached, redis, а то и вообще просто все сессии в памяти Go хранить. Грубо говоря, в мапе, где ключ - кука из запроса. Навертеть что-то сложнее никогда не поздно.
Evgeny
Подскажите, пожалуйста, есть JSON. Как его лучше всего передать с http PUT ?
Slava
в BODY
Evgeny
Спасибо!
Slava
добавляя в хидеры тип нагрузки
Evgeny
Да, я понял уже. Вы мне второй раз уже помогли! Ещё раз спасибо!
MOS2502
Подскажите, как в данном примере удалить все данные кроме цифр? https://play.golang.org/p/VWCmKXRahna
Daniel
первое, что приходит на ум - regexp
Daniel
https://play.golang.org/p/aCGM2rEKya2
Илья
https://play.golang.org/p/hewvMFXq2ti
MOS2502
Cпасибо Даниэль и Илья, в сторону регулярки, я как то не смотрел...
🍗
Есть форма, где динамически добавляются импуты <input type="text" name="name[]" class="who form-control" > Как получить массив импутов? У меня так выводит содержания первого импута context := make(map[string]string) if r.Method == "POST" { context["name"] = r.FormValue("name[]") } fmt.Println(context)
🍗
for key, values := range r.Form { fmt.Println(key, values) } никак не помогло, ничего не вывело.
🍗
Проблема решена, нужно было перед циклом написать r.ParseForm()
Axm
кто-нибудь работал с prepared queries для mysql? не могу найти в доках никакой инфы о том, нормально ли при инициализации пакета (ну ли при соединении с бд) сделать prepare, а потом всю дорогу использовать готовые стейтменты? и закрыть их все при завершении работы сервиса.
Axm
в доках написано, что при обрыве он сам возьмет новый коннекшн из пула
Andrey
Возьмет и заново выполнит prepare?
Andrey
ого
Alexandr
Всем привет. Как можно конвертнуть string в uint32? метод strconv.ParseUint() возвращает uint64
Axm
Возьмет и заново выполнит prepare?
http://go-database-sql.org/prepared.html When you execute the Stmt, it tries to use the connection. If it’s not available because it’s closed or busy doing something else, it gets another connection from the pool and re-prepares the statement with the database on another connection.
Andrey
and re-prepares the statement with the database on another connection круто
Andrey
Значит остается только вопрос с тем, что он отожрет один коннект к базе
Axm
мой вопрос скорее был в том, насколько больше оверхед, если не делать prepare, а просто каждый раз дергать Query(). он же под капотом то же самое делает каждый раз.
Artem
Всем привет. Как можно конвертнуть string в uint32? метод strconv.ParseUint() возвращает uint64
if s, err := strconv.ParseUint("42", 10, 32); err == nil { fmt.Printf("%T\n", uint32(s)) }
Andrey
а где сказано, что надо не "просто каждый раз дергать Query()", а именно вот это вот делать prepare?
Prepare дает прирост скорости если делать много одинаковых запросов
Axm
нигде, я и спрашиваю, как сделать лучше
Axm
у меня именно одинаковые запросы и будут
Chebyrash
Travic CI фейлит билд. В travis.yml указана версия 1.10, а он её конвертирует в 1.1
Andrey
Chebyrash
Chebyrash
Нашёл виновника
Axm
а где сказано, что надо не "просто каждый раз дергать Query()", а именно вот это вот делать prepare?
Query внутри сделает prepare все равно. вопрос в том, нафига каждый раз это делать, если можно один раз объявить.
Daniel
Prepare дает прирост скорости если делать много одинаковых запросов
коллеги, насколько я помню, в недрах sql есть кеш подготовленных запросов
Andrey
коллеги, насколько я помню, в недрах sql есть кеш подготовленных запросов
В бд тоже есть свой кеш запросов. Значит ли это что можно пренебречь еще одним способом ускорить выполнение? Не думаю.
Pawel
нигде, я и спрашиваю, как сделать лучше
prepare кеширует соединение а не запрос. Соотв. не важно сколько у вас запросов. prepare будет вызываться в любом случае если у вас в db.Query() больше одного аргумента, иначе не будут в любом случае. Если вам надо именно SQL запрос кешировать, то это совсем другая история
Andrey
бред какой. с чего бы ему там быть?!
В mysql, например, он есть все время сколько я его знаю.
Andrey
ускорить не получится
Нужно это дело забенчмаркать
Sergei
бред какой. с чего бы ему там быть?!
действительно, ведь разработчики скуля тупые, как же им додуматься-то до того чтобы сделать кеш запросов
Daniel
Нужно это дело забенчмаркать
это еще надо такой запрос придумать, чтобы на его prepare уходило существенное время
Kirill
Где?
Swap pointer
Vladimir
Swap pointer
Не атомик?
Kirill
Не атомик?
В атомике
Sergei
SQL с большим и трудным AST
парсинг ничто, планнинг - всё.
Vladimir
В атомике
А речь была про неатомик
Kirill
Не атомик?
XCHGQ - и есть такой атомик
Vladimir
Типа что будет если не атомарности присвоить указатель
Daniel
SQL с большим и трудным AST
спасибо, кэп. у вас есть такой под рукой?
Vladimir
Undefined behaviour
О том и речь
Vladimir
Дальше были попытки предположить что именно может быть