Список форумов SeoChase SeoChase

 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы  РекламаРеклама   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

cool_shop: нагрузка на Mysql
На страницу 1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов SeoChase -> Аффилиатские программы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Kopch
Квоттер


Зарегистрирован: 19.09.2004
Сообщения: 55

СообщениеДобавлено: Чт Ноя 22, 2007 5:56 pm    Заголовок сообщения: cool_shop: нагрузка на Mysql Ответить с цитатой

Привет

Есть несколько магазинов на дедике. Как только трафик начинает идти более-менее нормальный сразу жутко начинает тормозить мускуль. Саппорт ответил, что нагрузка связана с цитата "подозрение что виной тому трехстраничные запросы со вложенными джойнами" и предоставили запросы, которые тормозят БД.
Кто-то сталкивался? Как лечить?
_________________
Make Money Online Blog
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kopch
Квоттер


Зарегистрирован: 19.09.2004
Сообщения: 55

СообщениеДобавлено: Чт Ноя 22, 2007 6:04 pm    Заголовок сообщения: Ответить с цитатой

вот и запросы, на которые грешит саппорт:

Код:

# Query_time: 12  Lock_time: 0  Rows_sent: 12  Rows_examined: 60381
use db1;
select p.prdID as prdID,in_stock,quantity,url_name,
                price,p.price_type as price_type,spec_price,spec_time1,spec_time2,
                pn.price_type as price_type_new,
                cp.catID as catID,p.priority as priority,
                attributes,

                IF(pn.name!='',pn.name,p.name) as name,
#               IF(pn.comment!='',pn.comment,p.comment) as comment,

                IF(u1.uplID,u1.uplID,0) as uplID1,
                IF(u2.uplID,u2.uplID,0) as uplID2,
#               IF(u3.uplID,u3.uplID,0) as uplID3,
                IF(u1.img_not_loaded,u1.name,CONCAT(u1.path,'/',u1.name)) as fna
me1,
                IF(u2.img_not_loaded,u2.name,CONCAT(u2.path,'/',u2.name)) as fna
me2,
#               IF(u3.img_not_loaded,u3.name,CONCAT(u3.path,'/',u3.name)) as fna
me3,
                u1.width as width1,u1.height as height1,
                u2.width as width2,u2.height as height2,
#               u3.width as width3,u3.height as height3,
                u1.img_not_loaded as img_not_loaded1,
                u2.img_not_loaded as img_not_loaded2
#               u3.img_not_loaded as img_not_loaded3
        from (sc_product as p,sc_category_prod as cp)
          left join sc_product_newval as pn on pn.prdID=p.prdID
          left join uploads1 as u1 on uplID1=u1.uplID
          left join uploads1 as u2 on uplID2=u2.uplID
#         left join uploads1 as u3 on uplID3=u3.uplID
        where p.active and cp.catID in (174,164,168,176,177,178,179,180,181,155,
153,154,156,157,158,182,187,175,152,162,166,167,169,170,171,172,173,160,161,163,
165,184,185,186,886,887,888,159,183) and
        time_available<=1195668837 and cp.prdID=p.prdID
        group by p.prdID
        order by p.num_choosed desc,p.price_type_new DESC,priority,is_new DESC,rand() limit 0,12;

-------------------------------------------------------------------------------

# Query_time: 21  Lock_time: 0  Rows_sent: 12  Rows_examined: 60352
use db2;
select p.prdID as prdID,in_stock,quantity,url_name,
                price,p.price_type as price_type,spec_price,spec_time1,spec_time2,
                pn.price_type as price_type_new,
                cp.catID as catID,p.priority as priority,
                attributes,

                IF(pn.name!='',pn.name,p.name) as name,
#               IF(pn.comment!='',pn.comment,p.comment) as comment,


                IF(u1.uplID,u1.uplID,0) as uplID1,
                IF(u2.uplID,u2.uplID,0) as uplID2,
#               IF(u3.uplID,u3.uplID,0) as uplID3,
                IF(u1.img_not_loaded,u1.name,CONCAT(u1.path,'/',u1.name)) as fname1,
                IF(u2.img_not_loaded,u2.name,CONCAT(u2.path,'/',u2.name)) as fname2,
#               IF(u3.img_not_loaded,u3.name,CONCAT(u3.path,'/',u3.name)) as fname3,
                u1.width as width1,u1.height as height1,
                u2.width as width2,u2.height as height2,
#               u3.width as width3,u3.height as height3,
                u1.img_not_loaded as img_not_loaded1,
                u2.img_not_loaded as img_not_loaded2
#               u3.img_not_loaded as img_not_loaded3
        from (sc_product as p,sc_category_prod as cp)
          left join sc_product_newval as pn on pn.prdID=p.prdID
          left join uploads1 as u1 on uplID1=u1.uplID
          left join uploads1 as u2 on uplID2=u2.uplID
#         left join uploads1 as u3 on uplID3=u3.uplID
        where p.active and cp.catID in (174,164,168,176,177,178,179,180,181,155,
153,154,156,157,158,182,187,175,152,162,166,167,169,170,171,172,173,160,161,163,
165,184,185,186,886,887,888,159,183) and
        time_available<=1195668894 and cp.prdID=p.prdID
        group by p.prdID
        order by p.num_choosed desc,p.price_type_new DESC,priority,is_new DESC,rand() limit 0,12;

-------------------------------------------------------------------------------

# Query_time: 12  Lock_time: 0  Rows_sent: 10  Rows_examined: 78083
use db3;
select p.prdID as prdID,p.priority as priority,url_name,
                IF(pn.name!='',pn.name,p.name) as name,cp.catID as catID,
                IF(attributes!='',1,0) as attributed,
                p.price_type as price_type,price,spec_price,spec_time1,spec_time2,
                pn.price_type as price_type_new
        from (sc_product as p,sc_category_prod as cp)
          left join sc_product_newval as pn on pn.prdID=p.prdID
        where p.active and p.in_stock and cp.catID in (199,302,531,286,532,559,
297,492,287,490,560,489,488,491,487,289,290,291,294,292,298,300,486,192,520,206,
207,205,200,208,219,511,214,203,204,202,213,220,507,209,211,210,217,212,215,193,
349,362,363,364,347,360,340,333,354,359,331,341,345,334,348,332,342,226,329,330,
195,257,542,260,522,529,543,535,2636,244,245,254,256,306,1306,242,240,259,248,249
,250,251,253,262,303,304,305,497,510,238,307,194,528,541,232,233,236,493,231,237
,234,512,198,524,277,548,276,275,509,521,536,279,197,225,246,247,273,274,272,196
,269,498,267,271,495,266,218,313,239,309,316,540,319,318,317,263,264,265,326,365
,366,367,368,369,370,371,503,314,320,321,322,323,325,327,328,494,501,502,514,582
,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,578,580,581,583,312
,586,324,539,315,499,505,968,513,516) and
                time_available<=1195668919 and
                cp.prdID=p.prdID group by p.prdID order by priority,rand() limit 10;

-------------------------------------------------------------------------------

# Query_time: 11  Lock_time: 0  Rows_sent: 10  Rows_examined: 31707
use db2;
select p.prdID as prdID,p.priority as priority,url_name,
                IF(pn.name!='',pn.name,p.name) as name,cp.catID as catID,
                IF(attributes!='',1,0) as attributed,
                p.price_type as price_type,price,spec_price,spec_time1,spec_time2,
                pn.price_type as price_type_new
        from (sc_product as p,sc_category_prod as cp)
          left join sc_product_newval as pn on pn.prdID=p.prdID
        where p.active and p.in_stock and cp.catID in (174,164,168,176,177,178,
179,180,181,155,153,154,156,157,158,182,187,175,152,162,166,167,169,170,171,172,
173,160,161,163,165,184,185,186,886,887,888,159,183) and
                time_available<=1195668919 and
                cp.prdID=p.prdID group by p.prdID order by priority,rand() limit 10;

-------------------------------------------------------------------------------

# Query_time: 11  Lock_time: 0  Rows_sent: 10  Rows_examined: 18262
use db4;
select p.prdID as prdID,p.priority as priority,url_name,
                IF(pn.name!='',pn.name,p.name) as name,cp.catID as catID,
                IF(attributes!='',1,0) as attributed,
                p.price_type as price_type,price,spec_price,spec_time1,spec_time2,
                pn.price_type as price_type_new
        from (sc_product as p,sc_category_prod as cp)
          left join sc_product_newval as pn on pn.prdID=p.prdID
        where p.active and p.in_stock and cp.catID in (381,383,2,8,9,10,11,12,13,
14,16,406,460,555,584,587,882,967,384,17,18,19,20,21,31,22,23,24,27,32,5,98,6,35,
25,382,30,3,7,26,4,28,29,33,376,380,405,556,515) and
                time_available<=1195668936 and
                cp.prdID=p.prdID group by p.prdID order by priority,rand() limit 10;

-------------------------------------------------------------------------------

# Query_time: 13  Lock_time: 0  Rows_sent: 10  Rows_examined: 31736
use db1;
select p.prdID as prdID,p.priority as priority,url_name,
                IF(pn.name!='',pn.name,p.name) as name,cp.catID as catID,
                IF(attributes!='',1,0) as attributed,
                p.price_type as price_type,price,spec_price,spec_time1,spec_time2,
                pn.price_type as price_type_new
        from (sc_product as p,sc_category_prod as cp)
          left join sc_product_newval as pn on pn.prdID=p.prdID
        where p.active and p.in_stock and cp.catID in (174,164,168,176,177,178,
179,180,181,155,153,154,156,157,158,182,187,175,152,162,166,167,169,170,171,172,
173,160,161,163,165,184,185,186,886,887,888,159,183) and
                time_available<=1195669122 and
                cp.prdID=p.prdID group by p.prdID order by priority,rand() limit 10;

-------------------------------------------------------------------------------

use db4;
select p.prdID as prdID,in_stock,quantity,url_name,
                price,p.price_type as price_type,spec_price,spec_time1,spec_time2,
                pn.price_type as price_type_new,
                cp.catID as catID,p.priority as priority,
                attributes,

                IF(pn.name!='',pn.name,p.name) as name,
#               IF(pn.comment!='',pn.comment,p.comment) as comment,


                IF(u1.uplID,u1.uplID,0) as uplID1,
                IF(u2.uplID,u2.uplID,0) as uplID2,
#               IF(u3.uplID,u3.uplID,0) as uplID3,
                IF(u1.img_not_loaded,u1.name,CONCAT(u1.path,'/',u1.name)) as fname1,
                IF(u2.img_not_loaded,u2.name,CONCAT(u2.path,'/',u2.name)) as fname2,
#               IF(u3.img_not_loaded,u3.name,CONCAT(u3.path,'/',u3.name)) as fname3,
                u1.width as width1,u1.height as height1,
                u2.width as width2,u2.height as height2,
#               u3.width as width3,u3.height as height3,
                u1.img_not_loaded as img_not_loaded1,
                u2.img_not_loaded as img_not_loaded2
#               u3.img_not_loaded as img_not_loaded3
        from (sc_product as p,sc_category_prod as cp)
          left join sc_product_newval as pn on pn.prdID=p.prdID
          left join uploads1 as u1 on uplID1=u1.uplID
          left join uploads1 as u2 on uplID2=u2.uplID
#         left join uploads1 as u3 on uplID3=u3.uplID
        where p.active and cp.catID in (381,383,2,8,9,10,11,12,13,14,16,406,460,
555,584,587,882,967,384,17,18,19,20,21,31,22,23,24,27,32,5,98,6,35,25,382,30,3,7
,26,4,28,29,33,376,380,405,556,515) and
        time_available<=1195669122 and cp.prdID=p.prdID
        group by p.prdID
        order by p.num_choosed desc,p.price_type_new DESC,priority,is_new DESC,rand() limit 315,15;

-------------------------------------------------------------------------------

# Query_time: 11  Lock_time: 0  Rows_sent: 1  Rows_examined: 28671
use db1;
select count(DISTINCT p.prdID)
                        from (sc_product as p, sc_category_prod as cp)
                                left join sc_product_newval as pn on p.prdID=pn.prdID
                        where p.active and cp.catID in (174,164,168,176,177,178,
179,180,181,155,153,154,156,157,158,182,187,175,152,162,166,167,169,170,171,172,
173,160,161,163,165,184,185,186,886,887,888,159,183) and
        time_available<=1195669129 and cp.prdID=p.prdID and ((IF(pn.name!='',pn.
name,p.name) rlike '[[:<:]]18[[:alnum:]]*[[:>:]]' and IF(pn.name!='',pn.name,p.n
ame) rlike '[[:<:]]ga[[:alnum:]]*[[:>:]]' and IF(pn.name!='',pn.name,p.name) rli
ke '[[:<:]]barbell[[:alnum:]]*[[:>:]]'));

_________________
Make Money Online Blog
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Busy-B
Квоттер


Зарегистрирован: 13.03.2006
Сообщения: 40

СообщениеДобавлено: Сб Ноя 24, 2007 4:42 am    Заголовок сообщения: Ответить с цитатой

версия мускула?
врублено ли в БД кэширование и т.п. ?
_________________
Конвертим финансовый траффик, деньги в куб, неанонимных буржуев, меломанов
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Kopch
Квоттер


Зарегистрирован: 19.09.2004
Сообщения: 55

СообщениеДобавлено: Вс Ноя 25, 2007 9:24 am    Заголовок сообщения: Ответить с цитатой

MySQL 4.1.18

Насчет остального я не очень разбираюсь в этом... Если бы ты подсказал, что именно надо узнать (что ты подразумевал под "т.п.") то я бы все у саппорта выяснил.
_________________
Make Money Online Blog
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Drow
Lincoln


Зарегистрирован: 01.07.2004
Сообщения: 1006
Откуда: Новокузнецк

СообщениеДобавлено: Вс Ноя 25, 2007 1:12 pm    Заголовок сообщения: Ответить с цитатой

Я уже давно хочу сделать шоп на статике, вот только впереди маячет новый движок, так что х.з., то ли надо ждать, то ли надо делать Smile
_________________
Дешевые домены за Webmoney
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Kopch
Квоттер


Зарегистрирован: 19.09.2004
Сообщения: 55

СообщениеДобавлено: Чт Дек 06, 2007 7:32 pm    Заголовок сообщения: Ответить с цитатой

Никто не сталкивался с такой проблемой? Т.е. выходит дело непосредственно в моем хостинге, скрипт не при чем?
Может кто-то подскажет, что можно сделать, чтобы решить проблему?
Саппорт советует оформить запросы по другому, но я если честно боюсь лезть туда. Может как-то со стороны сервера что-то подкрутить-настроить?

Пасиб
_________________
Make Money Online Blog
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Svift
Lincoln


Зарегистрирован: 22.07.2004
Сообщения: 327
Откуда: СССР

СообщениеДобавлено: Чт Дек 06, 2007 8:30 pm    Заголовок сообщения: Ответить с цитатой

а вариант взять другой хостинг не рассматривается? ощущение такое, что либо у вас не дедик вовсе, либо софт на нем настроен "нестандартно"
_________________
Как выходить из под фильтров Google?
Вот этими ссылками оч хорошо продвигаются магазины в Google и Yahoo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Busy-B
Квоттер


Зарегистрирован: 13.03.2006
Сообщения: 40

СообщениеДобавлено: Чт Дек 06, 2007 10:51 pm    Заголовок сообщения: Ответить с цитатой

для мускула обязательно надо врубать кеши и давать ему под эти кэши поболе памяти, см. детали в гугле - статей хватает.
_________________
Конвертим финансовый траффик, деньги в куб, неанонимных буржуев, меломанов
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Доктор
Квоттер


Зарегистрирован: 19.09.2004
Сообщения: 450

СообщениеДобавлено: Пт Дек 07, 2007 2:52 am    Заголовок сообщения: Ответить с цитатой

Интересно, что такое "более-менее нормальный" траффик. Может, это сотня посетителей в минуту?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
!absolut
Квоттер


Зарегистрирован: 20.02.2005
Сообщения: 55

СообщениеДобавлено: Пт Дек 07, 2007 10:45 am    Заголовок сообщения: Ответить с цитатой

Выполнил запрос на ювелирке:
Showing rows 0 - 9 (10 total, Query took 0.5694 sec)

Так что видимо памяти не хватает. Либо трафика 20к в день Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
shefbel2007
Квоттер


Зарегистрирован: 05.04.2007
Сообщения: 61

СообщениеДобавлено: Пт Дек 07, 2007 1:41 pm    Заголовок сообщения: Ответить с цитатой

Привет, Всем
cкажите а зачем сортировать по функции, тем более такой славной как RAND?

кусок из запроса:
order by priority,rand()

вот смотрите:
- сначал происходит поиск элементов на выдачу, связывание таблиц, по кулючам, оптимизация по индексам и т.д.
- потом их сортировка, по полям, для каждого элемента происходит вычисление ф-ции rand, его установка, потом сортировка всей выборки, все это дело проходит в памяти. Если указанное время в сек. то можно утверждать точно, сервак ушел в своп.
-потом paging - Limit I, K
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
shefbel2007
Квоттер


Зарегистрирован: 05.04.2007
Сообщения: 61

СообщениеДобавлено: Пт Дек 07, 2007 1:49 pm    Заголовок сообщения: Ответить с цитатой

самы простой способ узнать запрос тормозт или нет

выполнить execution plan для запроса, там все будет показано....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Доктор
Квоттер


Зарегистрирован: 19.09.2004
Сообщения: 450

СообщениеДобавлено: Пт Дек 07, 2007 2:08 pm    Заголовок сообщения: Ответить с цитатой

То, что rand очень сильно тормозит запросы - это безусловно. У кого есть проблемы с тормозами, поубирайте эти rand()
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kopch
Квоттер


Зарегистрирован: 19.09.2004
Сообщения: 55

СообщениеДобавлено: Пт Дек 07, 2007 2:19 pm    Заголовок сообщения: Ответить с цитатой

2Svift На этом хостинге еще два дедика под другие нужды - все ок.
То что это дедик - это точно Smile Настроен стандартно.

Вот насчет кешей неуверен, буду мучать саппорт.

2Доктор - трафик суммарный на магазины порядка 30-40к хитов в сутки

Насчет rand(). Где это убрать? Как? просто убрать или заменить на что-то?
_________________
Make Money Online Blog
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Svift
Lincoln


Зарегистрирован: 22.07.2004
Сообщения: 327
Откуда: СССР

СообщениеДобавлено: Пт Дек 07, 2007 6:28 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
30-40к хитов в сутки
хИТов или хОСТов?
_________________
Как выходить из под фильтров Google?
Вот этими ссылками оч хорошо продвигаются магазины в Google и Yahoo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов SeoChase -> Аффилиатские программы Часовой пояс: GMT
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group