Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

а тормоза при увеличении товара происходят вовсе не изза моих изменений, а изза других методов simpla, например Categories::init_categories(), где есть росто "гениальные" решения например в виде таких строк

// Не кончаем, пока не кончатся категории, или пока ниодну из оставшихся некуда приткнуть		while(!empty($categories)  && !$finish)
, да и вообще этот метод делается в два прохода цикла, а не так как там рассписано на полтора листа
Ссылка на сообщение
Поделиться на другие сайты

2 AlpeX советую пойти перекурить. А то от смеха уже у меня слёзы на глазах.

ГеЙниЙ кодинга пришёл на ФОРУМ СИМПЛЫ чтобы якобы показать свой блеск ума... Если не нравится НАХ... Ты сюда пришёл? Ты же ГеЙниЙ напиши свой магазин. Или мозгов не хватает? Тогда книжечки тебе в помощь!

Ссылка на сообщение
Поделиться на другие сайты

Я далеко не гений, и эти вещи о которых я говорю это самые основы основ, о которых должен знать каждый кто называет себя кодером...

Ссылка на сообщение
Поделиться на другие сайты

вот нашел ссылку на оф сайт сервера mysql
http://dev.mysql.com/doc/refman/5.1/en/distinct-optimization.html ,
где сказано о том что distinct может использовать group by, поэтому эти разговоры о том что старая выборка работает быстрее просто смешны

Ссылка на сообщение
Поделиться на другие сайты

Как вариант - можно написать функцию, которая будет подсчитывать количество товаров из админки и писать в базу для каждого Бренда.
Делал такое для категорий.

Ссылка на сообщение
Поделиться на другие сайты

можно сделать хитренько сторонне правдо. Кроном раз например в 5 минут просчёт который будет обновлять это самое кол-во товаро в бренде

Ссылка на сообщение
Поделиться на другие сайты

вообщето оригинальный запрос вот

SELECT DISTINCT b.id, b.name, b.url, b.meta_title, 
b.meta_keywords, b.meta_description, b.description, b.image
FROM __brands b 
LEFT JOIN __products p 
ON p.brand_id=b.id 
LEFT JOIN __products_categories pc 
ON p.id = pc.product_id 
WHERE pc.category_id in(?@)
ORDER BY b.name
, (array)$filter['category_id']


а вот мой запрос

SELECT COUNT(p.id) AS count, b.id, b.name, b.url, b.meta_title, b.meta_keywords,     b.meta_description, b.description, b.imageFROM __brands AS b LEFT JOIN __products AS p ON p.brand_id = b.id LEFT JOIN __products_categories AS pc ON p.id = pc.product_id WHERE pc.category_id in(?@)GROUP BY b.id, p.brand_idORDER BY b.name, (array)$filter['category_id']

что касается Categories::init_categories()
то дерево строится двумя циклами foreach, и не вложенными а идущими друг за другом.
Ссылка на сообщение
Поделиться на другие сайты

А зачем? Добавили - удалили товары - пересчитали количество... Зачем это каждые 5 мин делать?

Ссылка на сообщение
Поделиться на другие сайты

и покажите мне сайт на котором 130 вложенных категорий, с хотя бы по несколько товаров в каждой категории

Ссылка на сообщение
Поделиться на другие сайты

2 Kosjak76 ну да об этом не подумал но если вводишь подсчёт всё равно просчитать разочек придётся (= если товары уже есть

Ссылка на сообщение
Поделиться на другие сайты

да потому что там(Categories::init_categories()) написано не понятно что, размером на экран, хотя это делается двумя foreach и это знает каждый "школьник"

$tree_categories = array();        foreach ($categories as $category)             $tree_categories[$category->id] = $category;                foreach ($tree_categories as $category)             $tree_categories[$category->parent_id]->subcategories[] = $category;

а по скорости работы выбора брендов, специально забил базу больше 20000 позиций и разница в работе, между родной simpla и с моей функцией, была не более чем 0,1-0,15 сек, правда в пользу родной, но это и есть та плата которую нужно заплатить за отображение количества продуктов по каждому бренду.
И это является единственным правильным решением, данной задачи.
Но как я понял спорить здесь абсолютно бесполезно, потому как вы упертые как бараны, и даже если видите, что я прав все равно рассказываете непонятно что.
Жду вашего решения на кроне, сброшу его друзьям, посмеемся вместе)))
Ссылка на сообщение
Поделиться на другие сайты

Посмеятся? Клоунов нашёл? Если вы такой смешной человек а мы все такие убогие что даже самый огромный игровой мониторинг использует крон для подсчёта серверов и там их больше 50000. То я уже не знаю что сказать! (=
Сброшу друзьям, наши друзья уже читают и ржут горе кулХацкер (=
Удачи. Мир всем нашим.
P.S. forteam.ru тоже много каких данных юзает через крон. Это так к слову

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...