Size: a a a

2021 July 05

MG

Mr. Good in Modern::Perl
предложений от поставщиков миллионы, по одной позиции от разных поставщиков может быть 100-200 предложений одного и того же товара
источник

AS

Alexey Stavrov in Modern::Perl
А, т.е. в итоге будет не больше 200 товаров на запрос
источник

MG

Mr. Good in Modern::Perl
в результатах поиска да, около того, редко когда больше, а может быть и 10 результатов, например
источник

AS

Alexey Stavrov in Modern::Perl
Если я правильно понял, то будет вот такой вот запрос:
select
   t2.*
from t1 as t1_from
   join t1 as t1_to on t1_to.group_id = t1_from.group_id
   join t2 on t1_to.brand = t2.brand and t1_to.article = t2.article
where
   t1.brand = <some brand> and t1.artilce = <some articale>
источник

AS

Alexey Stavrov in Modern::Perl
И пользователь будет выбирать из списка в интерфейсе нужные ему предложения и формировать счёт, так?
источник

AS

Alexey Stavrov in Modern::Perl
Вы боитесь, что в запись упрётесь?
источник

AS

Alexey Stavrov in Modern::Perl
(brand, article) - это PK, значит индекс тут должен быть на обоих таблицах
Ещё индекс на group_id нужно добавить
источник

MG

Mr. Good in Modern::Perl
Суть не в этом - поиск по базе уже откатан, индексы все прописаны, и всё работает прекрасно, проблемы начинаются при инсертах в базу. Так это у меня их ещё сравнительно мало. А когда будет больше инсертов - начнётся ад с тормозами жуткими.
источник

AS

Alexey Stavrov in Modern::Perl
Вставку в PG я бы через copy делал в отдельном worker процессе, но у Вас MySQL, поэтому ищите самый быстрый спооб там
источник

AS

Alexey Stavrov in Modern::Perl
А как Insert-ы делаете? распишите процесс
источник

MG

Mr. Good in Modern::Perl
юзер заливат файл, я его сохраняю и дальше LOAD DATA LOCAL INFILE в MySQL
источник

AS

Alexey Stavrov in Modern::Perl
Ага, пользователи это часто будут делать? Если нет, то можно просто в worker задачу кидать и не думать.
источник

MG

Mr. Good in Modern::Perl
не сильно часто, ну раз в 3-5 дней, причем у одного может быть 100 позиций в прайсе, у другого несколько десятков тысяч (макс. 100000)
источник

AS

Alexey Stavrov in Modern::Perl
А что за проблемы? LA поднимается?
источник

AS

Alexey Stavrov in Modern::Perl
А пользователей сколько?
источник

MG

Mr. Good in Modern::Perl
пока что таких, что могут залить прайс, очень мало, но в перспективе их могут быть тысячи, вряд ли десятки тысяч
источник

AS

Alexey Stavrov in Modern::Perl
Мне кажеся, если Вы воркером будете эти заливки делать, то будет у вас по 300 задач в день.
Каждая задача добавит 100_000 записей. Кажется что-то вполне подсильное для РСУБД.
источник

AS

Alexey Stavrov in Modern::Perl
Проблемы—то какие, я не понял
источник

AS

Alexey Stavrov in Modern::Perl
Вот этот вопрос
источник

MG

Mr. Good in Modern::Perl
проблема в том, что сейчас даже если 1 пользователь что-то начинает заливать, то уже тормоза ощутимые, а если их будет несколько одновременно, то даже не знаю, что будет
источник