Текущее время: Пн май 21, 2012 4:42 pm




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.
 cool_shop: нагрузка на Mysql 
Автор Сообщение
Квоттер

Зарегистрирован: Вс сен 19, 2004 12:23 pm
Сообщения: 57
Сообщение cool_shop: нагрузка на Mysql
Привет

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

_________________
Make Money Online Blog


Чт ноя 22, 2007 9:56 pm
Профиль ICQ
Квоттер

Зарегистрирован: Вс сен 19, 2004 12:23 pm
Сообщения: 57
Сообщение 
вот и запросы, на которые грешит саппорт:

Код:
# 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


Чт ноя 22, 2007 10:04 pm
Профиль ICQ
Квоттер

Зарегистрирован: Пн мар 13, 2006 6:13 pm
Сообщения: 44
Сообщение 
версия мускула?
врублено ли в БД кэширование и т.п. ?

_________________
Конвертим финансовый траффик, деньги в куб, неанонимных буржуев, меломанов


Сб ноя 24, 2007 8:42 am
Профиль
Квоттер

Зарегистрирован: Вс сен 19, 2004 12:23 pm
Сообщения: 57
Сообщение 
MySQL 4.1.18

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

_________________
Make Money Online Blog


Вс ноя 25, 2007 1:24 pm
Профиль ICQ
Lincoln

Зарегистрирован: Чт июл 01, 2004 12:42 pm
Сообщения: 1024
Откуда: Новокузнецк
Сообщение 
Я уже давно хочу сделать шоп на статике, вот только впереди маячет новый движок, так что х.з., то ли надо ждать, то ли надо делать :)

_________________
Дешевые домены за Webmoney


Вс ноя 25, 2007 5:12 pm
Профиль WWW
Квоттер

Зарегистрирован: Вс сен 19, 2004 12:23 pm
Сообщения: 57
Сообщение 
Никто не сталкивался с такой проблемой? Т.е. выходит дело непосредственно в моем хостинге, скрипт не при чем?
Может кто-то подскажет, что можно сделать, чтобы решить проблему?
Саппорт советует оформить запросы по другому, но я если честно боюсь лезть туда. Может как-то со стороны сервера что-то подкрутить-настроить?

Пасиб

_________________
Make Money Online Blog


Чт дек 06, 2007 11:32 pm
Профиль ICQ
Lincoln

Зарегистрирован: Пт июл 23, 2004 12:22 am
Сообщения: 385
Откуда: СССР
Сообщение 
а вариант взять другой хостинг не рассматривается? ощущение такое, что либо у вас не дедик вовсе, либо софт на нем настроен "нестандартно"

_________________
Как выходить из под фильтров Google?
Вот этими ссылками оч хорошо продвигаются магазины в Google и Yahoo


Пт дек 07, 2007 12:30 am
Профиль
Квоттер

Зарегистрирован: Пн мар 13, 2006 6:13 pm
Сообщения: 44
Сообщение 
для мускула обязательно надо врубать кеши и давать ему под эти кэши поболе памяти, см. детали в гугле - статей хватает.

_________________
Конвертим финансовый траффик, деньги в куб, неанонимных буржуев, меломанов


Пт дек 07, 2007 2:51 am
Профиль
Квоттер

Зарегистрирован: Вс сен 19, 2004 11:31 am
Сообщения: 531
Сообщение 
Интересно, что такое "более-менее нормальный" траффик. Может, это сотня посетителей в минуту?


Пт дек 07, 2007 6:52 am
Профиль
Квоттер

Зарегистрирован: Вс фев 20, 2005 5:14 am
Сообщения: 56
Сообщение 
Выполнил запрос на ювелирке:
Showing rows 0 - 9 (10 total, Query took 0.5694 sec)

Так что видимо памяти не хватает. Либо трафика 20к в день :)


Пт дек 07, 2007 2:45 pm
Профиль ICQ WWW
Квоттер

Зарегистрирован: Чт апр 05, 2007 6:52 pm
Сообщения: 182
Сообщение 
Привет, Всем
cкажите а зачем сортировать по функции, тем более такой славной как RAND?

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

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


Пт дек 07, 2007 5:41 pm
Профиль
Квоттер

Зарегистрирован: Чт апр 05, 2007 6:52 pm
Сообщения: 182
Сообщение 
самы простой способ узнать запрос тормозт или нет

выполнить execution plan для запроса, там все будет показано....


Пт дек 07, 2007 5:49 pm
Профиль
Квоттер

Зарегистрирован: Вс сен 19, 2004 11:31 am
Сообщения: 531
Сообщение 
То, что rand очень сильно тормозит запросы - это безусловно. У кого есть проблемы с тормозами, поубирайте эти rand()


Пт дек 07, 2007 6:08 pm
Профиль
Квоттер

Зарегистрирован: Вс сен 19, 2004 12:23 pm
Сообщения: 57
Сообщение 
2Svift На этом хостинге еще два дедика под другие нужды - все ок.
То что это дедик - это точно :) Настроен стандартно.

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

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

Насчет rand(). Где это убрать? Как? просто убрать или заменить на что-то?

_________________
Make Money Online Blog


Пт дек 07, 2007 6:19 pm
Профиль ICQ
Lincoln

Зарегистрирован: Пт июл 23, 2004 12:22 am
Сообщения: 385
Откуда: СССР
Сообщение 
Цитата:
30-40к хитов в сутки
хИТов или хОСТов?

_________________
Как выходить из под фильтров Google?
Вот этими ссылками оч хорошо продвигаются магазины в Google и Yahoo


Пт дек 07, 2007 10:28 pm
Профиль
Квоттер

Зарегистрирован: Вс сен 19, 2004 12:23 pm
Сообщения: 57
Сообщение 
ХИТов

_________________
Make Money Online Blog


Пт дек 07, 2007 11:07 pm
Профиль ICQ
Lincoln

Зарегистрирован: Пт июл 23, 2004 12:22 am
Сообщения: 385
Откуда: СССР
Сообщение 
кстати, яха может укладывать mysql... её боты жрут сайты дурниной просто... у меня такое было...

_________________
Как выходить из под фильтров Google?
Вот этими ссылками оч хорошо продвигаются магазины в Google и Yahoo


Сб дек 08, 2007 3:39 am
Профиль
Квоттер

Зарегистрирован: Вс сен 19, 2004 12:23 pm
Сообщения: 57
Сообщение 
Подскажите плз, что делать с rand() этим? Как его убрать? Просто удалить из запроса? Он же наверное для чего-то там нужен? Ничем заменять ег оне надо?

_________________
Make Money Online Blog


Сб дек 08, 2007 1:40 pm
Профиль ICQ
Квоттер

Зарегистрирован: Вс фев 20, 2005 5:14 am
Сообщения: 56
Сообщение 
Просто убрать rand() и запятую перед ним.
Он перемешивает id товаров в случайном порядке. Особо не нужен, но сомневаюсь что сильно быстрее станет.

Скажи, а сколько у тебя tmp_table_size? Это можно найти в phpmyadmin в разделе "Server variables and settings".


Сб дек 08, 2007 10:42 pm
Профиль ICQ WWW
Квоттер

Зарегистрирован: Вс сен 19, 2004 12:23 pm
Сообщения: 57
Сообщение 
!absolut писал(а):
Просто убрать rand() и запятую перед ним.
Он перемешивает id товаров в случайном порядке. Особо не нужен, но сомневаюсь что сильно быстрее станет.

Скажи, а сколько у тебя tmp_table_size? Это можно найти в phpmyadmin в разделе "Server variables and settings".


tmp table size 33554432(значение сессии) 33554432(глобальное значение)

_________________
Make Money Online Blog


Сб дек 08, 2007 11:57 pm
Профиль ICQ
Квоттер

Зарегистрирован: Вс фев 20, 2005 5:14 am
Сообщения: 56
Сообщение 
Попробуй сделать в /etc/my.cnf:
tmp_table_size = 64M

Так же можно увеличить query_cache_limit в пару раз если позволяет память.


Вс дек 09, 2007 12:11 am
Профиль ICQ WWW
Дайм

Зарегистрирован: Пн авг 20, 2007 5:28 pm
Сообщения: 13
Сообщение 
Kopch писал(а):
Никто не сталкивался с такой проблемой? Т.е. выходит дело непосредственно в моем хостинге, скрипт не при чем?
Может кто-то подскажет, что можно сделать, чтобы решить проблему?
Саппорт советует оформить запросы по другому, но я если честно боюсь лезть туда. Может как-то со стороны сервера что-то подкрутить-настроить?

Пасиб


У меня тоже такая штука.

Dual Xeon 2 x 2.80GHz; mysql 4.1.22-log, PHP 5.2.1

Сервер свой, не нагружен, при этом слишком долго грузится ювелирный шоп, где много Item'ов. Watches шоп- как категория из ювелирки- нормально работает, но там всего 500+ item'ов.

Когда ходишь по шопу- mysql очень сильно грызет процессор.
Вот скорость полной загрузки главной страницы согласно iwebtool.com/speed_test. Оба домена на одном сервере.

Код:
    Domain name    Size    Load Time    Average Speed per KB
1   watches.domain   27.07 KB   0.33 seconds   0.01 seconds
2   jewelry.domain   48.89 KB   4.31 seconds   0.09 seconds

У 1. на главной - Bestsellers: 526 items
У 2. на главной - Specials Products: 480 items

Под mysql выделено нормально кэша, настраивалось так после недели работы mysql, чтобы ни один из кэшей и буфферов не был переполнен и в то же время был запас.
Памяти всего на сервере 2Гб, свободная всегда есть.

my.cnf:
Код:
max_connections=100
thread_concurrency=4

skip-name-resolve
skip-networking
skip-slave-start
skip-locking
skip-innodb
skip-bdb
query_cache_wlock_invalidate=ON
query_cache_limit=2M
query_cache_size=164M
query_cache_type=1

tmp_table_size = 64M
max_heap_table_size = 64M
join_buffer_size = 256K

interactive_timeout=100
wait_timeout=20
connect_timeout=10

thread_cache_size=90
thread_cache=90
key_buffer=16M
key_buffer_size = 4M
join_buffer=512K
table_cache=1024
sort_buffer_size=612K
read_buffer_size=612K
read_rnd_buffer_size=612K
max_connect_errors=100
myisam_sort_buffer_size=8M


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

Единственное, в phpMyAdmin
CHECK TABLEs выдает:
Код:
Problems with indexes of table `sc_product`
More than one INDEX key was created for column `active`

но меня это не смутило, потому что другой шоп (watches) выдает такое же при "check table"s.


из slow.log:
Код:
# Time: 071202  1:57:46
# User@Host: database-com[database-com] @ localhost []
# Query_time: 19  Lock_time: 0  Rows_sent: 15  Rows_examined: 69292
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 (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<=1196553446 and cp.prdID=p.prdID and ((p.price_type=1 and spec_time1<=1196553446 and
                (!spec_time2 or spec_time2>=1196553446)) or pn.price_type=1)
    group by p.prdID
    order by p.price_type_new DESC,priority,is_new DESC,name limit 465,15;


Any ideas?


Вс дек 09, 2007 1:13 am
Профиль
Квоттер

Зарегистрирован: Вс фев 20, 2005 5:14 am
Сообщения: 56
Сообщение 
Вот у меня более слабом сервере:
Код:
[mysqld]
set-variable = max_connections=500
safe-show-database
long_query_time         = 2
log-slow-queries        = /var/log/mysql/mysql-slow.log

key_buffer = 320M
myisam_sort_buffer_size = 128M
join_buffer_size = 16M
read_buffer_size = 16M
sort_buffer_size = 16M
table_cache = 1024
thread_cache_size = 286
interactive_timeout = 25
wait_timeout = 1800
connect_timeout = 10
max_allowed_packet = 1M
max_connect_errors = 20
query_cache_limit = 16M
query_cache_size = 64M
query_cache_type = 1
tmp_table_size = 64M


При этом в таблице sc_product всего 15096 записей. Сравни со своим.


Вс дек 09, 2007 1:22 pm
Профиль ICQ WWW
Дайм

Зарегистрирован: Пн авг 20, 2007 5:28 pm
Сообщения: 13
Сообщение 
!absolut писал(а):
Вот у меня более слабом сервере:
При этом в таблице sc_product всего 15096 записей. Сравни со своим.


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

У тебя на 1 коннект mysql выходит около 50 MB, это перебор. Если у тебя 2гб памяти, то макимальное количество коннектов будет 40, при этом если считать что все будет использоваться под mysql.
Уже при 30 одновременных коннектов у тебя начнется нехватка оперативки и и использование свопа->а это тормоза сервера и сервера в таком случае падают.

500сonn х 50Mb= Maximum possible memory usage: 24.9G

Проблема не в буфферах и кэшах Mysql, а в том что mysql, выполняя именно запросы скрипта cool_shop очень сильно грызут процессор и поэтому долго обрабатываются.. Не знаю с чем это связано и как побороть..Магазин все равно отвечает больше чем за 3 секунды. Меньших значений при других настройках mysql не получалось.. :(
Изображение


Вс дек 09, 2007 4:54 pm
Профиль
Квоттер

Зарегистрирован: Вс фев 20, 2005 5:14 am
Сообщения: 56
Сообщение 
Перебор не перебор, а шоп работает исправно на сервере с 1гб памяти, при этом он еще занят постоянной раздачей mp3, файлов и держит еще несколько сайтов с серьезным трафиком + на него кладутся бекапы с другого сервера.

Помню большую нагрузку из-за тестового ювелирного шопа. На сколько помню, я взял его за основу для нового магазина. Потом поверх него поставил новый cool_shop. При обновлении базы были ошибки из-за last_modified, исправил и это. И сейчас шоп работает нормально.

Возможно у тебя та же проблема - старая база или база без индексов.


Вс дек 09, 2007 7:06 pm
Профиль ICQ WWW
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
phpBB, китайские телефоны, виагра и мужская сила. © 2000, 2002, 2005, 2007 phpBB Group.
Our workflow designed by Project Management Insights. We trust our backup to Calgary Backup.