Ruslan Kopyl Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 а тормоза при увеличении товара происходят вовсе не изза моих изменений, а изза других методов simpla, например Categories::init_categories(), где есть росто "гениальные" решения например в виде таких строк// Не кончаем, пока не кончатся категории, или пока ниодну из оставшихся некуда приткнуть while(!empty($categories) && !$finish) , да и вообще этот метод делается в два прохода цикла, а не так как там рассписано на полтора листа Цитата Ссылка на сообщение Поделиться на другие сайты
delprofile Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 2 AlpeX советую пойти перекурить. А то от смеха уже у меня слёзы на глазах.ГеЙниЙ кодинга пришёл на ФОРУМ СИМПЛЫ чтобы якобы показать свой блеск ума... Если не нравится НАХ... Ты сюда пришёл? Ты же ГеЙниЙ напиши свой магазин. Или мозгов не хватает? Тогда книжечки тебе в помощь! Цитата Ссылка на сообщение Поделиться на другие сайты
Ruslan Kopyl Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 Я далеко не гений, и эти вещи о которых я говорю это самые основы основ, о которых должен знать каждый кто называет себя кодером... Цитата Ссылка на сообщение Поделиться на другие сайты
Ruslan Kopyl Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 вот нашел ссылку на оф сайт сервера mysqlhttp://dev.mysql.com/doc/refman/5.1/en/distinct-optimization.html , где сказано о том что distinct может использовать group by, поэтому эти разговоры о том что старая выборка работает быстрее просто смешны Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 Как вариант - можно написать функцию, которая будет подсчитывать количество товаров из админки и писать в базу для каждого Бренда.Делал такое для категорий. Цитата Ссылка на сообщение Поделиться на другие сайты
delprofile Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 можно сделать хитренько сторонне правдо. Кроном раз например в 5 минут просчёт который будет обновлять это самое кол-во товаро в бренде Цитата Ссылка на сообщение Поделиться на другие сайты
Ruslan Kopyl Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 вообщето оригинальный запрос вот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, и не вложенными а идущими друг за другом. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 А зачем? Добавили - удалили товары - пересчитали количество... Зачем это каждые 5 мин делать? Цитата Ссылка на сообщение Поделиться на другие сайты
Ruslan Kopyl Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 и покажите мне сайт на котором 130 вложенных категорий, с хотя бы по несколько товаров в каждой категории Цитата Ссылка на сообщение Поделиться на другие сайты
delprofile Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 2 Kosjak76 ну да об этом не подумал но если вводишь подсчёт всё равно просчитать разочек придётся (= если товары уже есть Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 Один раз кнопку нажал - все в базу прописалось :-) Цитата Ссылка на сообщение Поделиться на другие сайты
delprofile Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 2 Kosjak76 ну да я про это же. Я тебе на днях ядро посмотришь. Я про то о чём в аське общались Цитата Ссылка на сообщение Поделиться на другие сайты
Ruslan Kopyl Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 да потому что там(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 сек, правда в пользу родной, но это и есть та плата которую нужно заплатить за отображение количества продуктов по каждому бренду.И это является единственным правильным решением, данной задачи.Но как я понял спорить здесь абсолютно бесполезно, потому как вы упертые как бараны, и даже если видите, что я прав все равно рассказываете непонятно что.Жду вашего решения на кроне, сброшу его друзьям, посмеемся вместе))) Цитата Ссылка на сообщение Поделиться на другие сайты
delprofile Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 Посмеятся? Клоунов нашёл? Если вы такой смешной человек а мы все такие убогие что даже самый огромный игровой мониторинг использует крон для подсчёта серверов и там их больше 50000. То я уже не знаю что сказать! (=Сброшу друзьям, наши друзья уже читают и ржут горе кулХацкер (=Удачи. Мир всем нашим. P.S. forteam.ru тоже много каких данных юзает через крон. Это так к слову Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.