Size: a a a

2021 February 24

VD

Vitalii Didyk in Laravel UA
Всем привет
Подскажите пожалуйста если кто-то знает
Какие технологии, или облачные сервисы используют для фильтров товара, если товара больше чем 100 тыс, и в фильтрах каждый раз когда любой выбирается,  нужно подгружать количество товара на фильтр
источник

VD

Vitalii Didyk in Laravel UA
Так как мускул с таким объемом думает очень долго
источник

YP

Yurii Prudskyi in Laravel UA
мне кажется, тут дело не в самой в базе, а в том, как написана логика фильтрации. И сами запросы
источник

AK

Alex Kovalchuk in Laravel UA
Vitalii Didyk
Так как мускул с таким объемом думает очень долго
думаю если это не текстовый поиск то и mysql будет достаточно быстрый (100 тыс для него это достаточно мало)

просто нужно правильно индексы и связи прописать (https://ruhighload.com/%d0%98%d0%bd%d0%b4%d0%b5%d0%ba%d1%81%d1%8b+%d0%b2+mysql)

конечно можно поговорить про Clickhouse и Elasticsearch но очень часто это оверинженеринг
источник

YP

Yurii Prudskyi in Laravel UA
100к это не нагрузка для мускула
источник

VD

Vitalii Didyk in Laravel UA
100k продуктов, но на каждый продукт по 100 атрибутов
И если в фильтр засовывать 8 атрибутов в которых 10+ значений, и на каждый из них надо вытаскивать количество продуктов, то ответ достаточно долго обрабатывается
источник

D

Dymon in Laravel UA
Vitalii Didyk
100k продуктов, но на каждый продукт по 100 атрибутов
И если в фильтр засовывать 8 атрибутов в которых 10+ значений, и на каждый из них надо вытаскивать количество продуктов, то ответ достаточно долго обрабатывается
такое можно сделать через elasticsearch. Загугли Фасетный поиск elasticsearch
источник

VD

Vitalii Didyk in Laravel UA
Dymon
такое можно сделать через elasticsearch. Загугли Фасетный поиск elasticsearch
Попробую, спасибо большое
источник

zN

zVlad Nesquik in Laravel UA
Alex Kovalchuk
думаю если это не текстовый поиск то и mysql будет достаточно быстрый (100 тыс для него это достаточно мало)

просто нужно правильно индексы и связи прописать (https://ruhighload.com/%d0%98%d0%bd%d0%b4%d0%b5%d0%ba%d1%81%d1%8b+%d0%b2+mysql)

конечно можно поговорить про Clickhouse и Elasticsearch но очень часто это оверинженеринг
Написано:
Если колонка age будет идти первой в индексе, тогда MySQL после первой части индекса сократит количество записей до 200. Останется сделать выборку по ним. Если же колонка gender будет идти первой, то количество записей будет сокращено до 6000 после первой части индекса. Т.е. на порядок больше, чем в случае age.

Это значит, что индекс age_gender будет работать лучше, чем gender_age.

Тут вобще не понял. Наоборот же, если будет сначала gender_age ити то отсеет сразу половину записей, а не 200.
Или в чем прикол?
источник

J

Jeen in Laravel UA
Vitalii Didyk
Всем привет
Подскажите пожалуйста если кто-то знает
Какие технологии, или облачные сервисы используют для фильтров товара, если товара больше чем 100 тыс, и в фильтрах каждый раз когда любой выбирается,  нужно подгружать количество товара на фильтр
Простой поисковый движок - даже на основе той же базы данных. Есть такая интеграция со скаутом
источник

AK

Alex Kovalchuk in Laravel UA
zVlad Nesquik
Написано:
Если колонка age будет идти первой в индексе, тогда MySQL после первой части индекса сократит количество записей до 200. Останется сделать выборку по ним. Если же колонка gender будет идти первой, то количество записей будет сокращено до 6000 после первой части индекса. Т.е. на порядок больше, чем в случае age.

Это значит, что индекс age_gender будет работать лучше, чем gender_age.

Тут вобще не понял. Наоборот же, если будет сначала gender_age ити то отсеет сразу половину записей, а не 200.
Или в чем прикол?
не отсекает 200, а отсекает все кроме тех 200, что подходят по параметру
источник
2021 February 25

J

Jeen in Laravel UA
Привет, чат. Такой вопрос. У меня есть комплексный local scope, допустим filter(). Можно ли как-то в нем заюзать метод search из скаута? Скоупы вроде работают только с квери-билдерами :(
источник

YP

Yurii Prudskyi in Laravel UA
> Скоупы вроде работают только с квери-билдерами
с элоквентом тоже работают, если я тебя правильно понял
источник

J

Jeen in Laravel UA
Yurii Prudskyi
> Скоупы вроде работают только с квери-билдерами
с элоквентом тоже работают, если я тебя правильно понял
public function scopeFilter(Builder $query)
   {
       return $this->search('test');
   }

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

J

Jeen in Laravel UA
Пока сделаю его не в рамках скоупа. Но, если кто подскажет, как скаут со скоупами скрестить - от меня благодарность
источник
2021 February 26

AS

Alex Sin in Laravel UA
Зацените лайффак
источник

AS

Alex Sin in Laravel UA
<?php

trait Chainer {
   
   public function __call($method, $params)
   {
       $result = $this->$method($params);
       
       $somethingReturned = $result && !is_a($result, self::class);
       
       return $somethingReturned ? $result : $this;
   }
}

class Foo {
   
   use Chainer;
   
   protected function foo()
   {
       $john = 'doe';
   }
   
   protected function bar()
   {
       return 123;
   }
}

echo (new Foo)->foo()->bar();
источник

AS

Alex Sin in Laravel UA
Чтобы в конце каждого метода не писать return $this;
источник

J

Jeen in Laravel UA
Сомнительный лайфхак, лучше так не делать, имхо
источник

AS

Alex Sin in Laravel UA
Jeen
Сомнительный лайфхак, лучше так не делать, имхо
why not?
источник