@proRuby

Страница 43 из 1594
[Anonymous]
18.05.2016
06:02:22
Сути нашего не имеющего никакого смысла разговора это не меняет.

Vlad
18.05.2016
06:03:47
лол

Иди книжку почитай.

Математика там.

Google
[Anonymous]
18.05.2016
06:04:04
Это я уже засыпаю, я же написал что я ошибся. А вот 0.2ms для запроса - много ?

Но с тобой я это обсужать не хочу, потому что мы зашли в тупик.

Vlad
18.05.2016
06:04:20
0.2с - много? Или все таки 0.2мс??

[Anonymous]
18.05.2016
06:04:39
Нет, 0.2ms. Я же тебе привёл выше пример COUNT'а по всей базе.

Vlad
18.05.2016
06:05:15
По твоей базе у тебя 0.7ms

Скорость.

[Anonymous]
18.05.2016
06:05:28
Потому что там в 300k раз больше данных, чем у тебя.

Я же выше писал, что у меня и не будет 200ms.

0.2ms

Vlad
18.05.2016
06:05:49
У меня тоже не будет 200

[Anonymous]
18.05.2016
06:06:22
Ну не посчитать их всех за 0.2ms, согласен.

Я про это.

Ладно, слушай, наш замечательный разговор зашёл в тупик недопонимания.

Google
Vlad
18.05.2016
06:07:10
Что я делаю не так?

[Anonymous]
18.05.2016
06:08:16
Да всё так, если ты про запрос.

SELECT COUNT(id) быстрее будет.

Если у тебя основной ключ там.

Разве что.

Ещё был хак с COUNT(1), но вроде бы уже неактуально.

Т.к. PostgreSQL вроде бы уже сам подхватывает это с какой-то версии.

Vlad
18.05.2016
06:12:03
Нет, это (id) никак не влияет

[Anonymous]
18.05.2016
06:12:53
Я имею в виду IS NULL и primary key.

Т.к. основа не может быть NULL.

И часто это свойство используют для составления более быстрых выборок.

А COUNT(1) внутренний оптимизатор раньше жрал по-другому.

Но это было достаточно давно.

Aleserche
18.05.2016
06:16:00
тоже COUNT(1) юзал раньше, но с какого-то момента он перестал служить

[Anonymous]
18.05.2016
06:16:36
COUNT(1) на каждую запись вешал единицу и считал единицы.

А COUNT(*) получал записи и считал их.

Сейчас разницы вроде бы никакой уже, потому что уже неактуально.

А раньше какие только костыли не использовали.

Vlad
18.05.2016
06:17:36
Вернувшись к первоначальному разговору, я не понял почему ты спросил «почему корзина в базе а не в сессии?», хотя потом ты сказал что она должна быть и в базе и в сессии. Откуда был вообще сделан вывод что в сессии ее нет?

Google
[Anonymous]
18.05.2016
06:18:47
но попытки так сделать лишь увеличивают в размерах, увеличивает связанность и усложняют код.

Когда AR генерирует такой SQL: SELECT "cart_items"."id" AS t0_r0, "cart_items"."cart_id" AS t0_r1, "cart_items"."variant_id" AS t0_r2, "cart_items"."quantity" AS t0_r3 это нормально, или лучше избегать такого?

Я и подумал, что ты вокруг запросов пляшешь, а самое важное пропустил.

Aleserche
18.05.2016
06:19:06
я это так понял. Ты считал корзину в сессию и держишь ее там для отображения на сайте. Чувак по страницам гуляет, корзину показывает из сессии. Потом он что-то добавляет. Пишешь в базу и снова заполняешь сессию

[Anonymous]
18.05.2016
06:19:20
Так делает Opencart и Magento.

Раз уж про eCommerce зашло.

А потом заказ забирается из базы один раз уже на моменте чекаута.

Т.е. за весь цикл одно чтение из базы только.

Всё остальное - записи (а они быстрее).

Vlad
18.05.2016
06:21:01
Ладно, с этим я мысль понял, но до тех пор пока у меня не хайлод, не вижу смысла получать геморрой с этим кешем корзины в сессии.

[Anonymous]
18.05.2016
06:21:02
Ну вот я и решил посоветовать, но видимо как-то плохо получилось.

Ладно, с этим я мысль понял, но до тех пор пока у меня не хайлод, не вижу смысла получать геморрой с этим кешем корзины в сессии.
Да это не геморрой сильно, лично я считаю, что всегда нужно минимизировать запросы к базе.

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

Но в данном случае сессия уж точно никак не повлияет на скорость, потому что сессия для пользователя уже наверняка есть.

Так почему бы не записать туда корзину и на цикл пользователя сократить 5-10 запросов к базе.

1000 пользователей экономит уже 5-10k запросов.

А это ведь совсем неплохо.

Vlad
18.05.2016
06:24:25
Ок, но это сейчас проблема первая с конца

Я много архитектуры перенял от spree

Google
Vlad
18.05.2016
06:25:17
Там мне как раз и не нравилось что любое маленькое действие ведет за собой гору запросов

[Anonymous]
18.05.2016
06:25:31
А ты как сделал?

Vlad
18.05.2016
06:25:40
Что именно?

[Anonymous]
18.05.2016
06:25:57
Там мне как раз и не нравилось что любое маленькое действие ведет за собой гору запросов

Или ты именно это сейчас и исправляешь?

Vlad
18.05.2016
06:26:30
Ну в целом такие проблемы и получил

Только в меньшем масштабе

[Anonymous]
18.05.2016
06:26:51
Кстати на минутку для юмора, я тут вспомнил 1C-Bitrix может на главной до 30 запросов к базе отхуярить.

Константин
18.05.2016
06:26:52
230 сообщений сгенерировали за обед

вы издеваетесь?))

Vlad
18.05.2016
06:26:58
Проблема в том что кеширование данных сильно уродует код

[Anonymous]
18.05.2016
06:27:31
Я бы с тобой тут не согласился, но это никого не ебёт.

Константин
18.05.2016
06:27:43
30 запросов - мелочи))) на первом PHP сайте, где я работал, генерировалось блее 300 за страницу

[Anonymous]
18.05.2016
06:28:01
У 1C-Bitrix ещё есть встроенный cron для шареда.

Там где запросы в кучу собираются на главную и выполняются на запросе везунчика.

?

Константин
18.05.2016
06:28:26
)))

я прям точно помню.. там таблица была, выводилось 100 элементов - это первый запрос и по 3-4 запроса для каждого элемента

Слава богу, что проект давно переписали)

[Anonymous]
18.05.2016
06:31:11
Да раньше и мерки были другие.

Google
[Anonymous]
18.05.2016
06:31:19
XML на 100 мегов - ночной кошмар.

Хотя это и сейчас не конфетка.

NewsBot pro.ruby
18.05.2016
06:34:16
Possibilities generator https://t.co/X4dJXLuIvD

Rafkat
18.05.2016
06:34:18
Всем привет! Кто учил Руби по скринкастам hasBrains(RubyScreencasts)? Не работает код в уроках(вернее тот что я написал по урокам), а именно 28 эпизод 10:30 - там где задает аргументы для корзины - у меня IDE подчеркивает красным. Срабатывает только если передавать обект типа RealItem и его не удаляет если повторно передать(а должен удалять), так же ему рандомно задает цену(она не должна меняться, если не апрель месяц). Если передать объект типа VirtualItem (в примере это car, то пишет что метод weight не определен. Могу скинуть архив или выложить код каждого файла в пастебин.

Vlad
18.05.2016
06:44:31
Лучше бы код выложить, не думаю что по памяти кто то ответит

Константин
18.05.2016
06:49:39
я недавно проходил этот курс, но он мне показался устаревшим

Nick
18.05.2016
07:03:07
> «IDE подчеркивает красным». IDE не нужны. Пиши в виме.

Vadim
18.05.2016
07:03:40
IDE иногда врут

Nick
18.05.2016
07:04:21
Когда загрузятся. Я никогда не дожидался этого момента. Работать надо было.

ToshiDono
18.05.2016
07:04:23
архив с прогой

запускать add_to_cart.rb из ком строки передавая аргументы имя товары

Nick
18.05.2016
07:05:15
Ты издеваешься? А ссылку на репо нельзя дать?

Vadim
18.05.2016
07:05:43
Например, atom неверно отображает синтаксис в slim, когда ты пишешь `=> value` даже когда код верен.

Nick
18.05.2016
07:06:22
Ну атом ещё терпимо. Там эту херню можно самому поправить

Vadim
18.05.2016
07:06:38
Лень, если честно

Nick
18.05.2016
07:06:50
А вот с любыми джетбрейновскими монстрами не прокатит

Vadim
18.05.2016
07:06:57
Ага

Nick
18.05.2016
07:06:57
Лень, если честно
Тогда не жалуйся

Страница 43 из 1594