Добавлено: Сб Дек 08, 2007 9:40 am Заголовок сообщения:
Подскажите плз, что делать с rand() этим? Как его убрать? Просто удалить из запроса? Он же наверное для чего-то там нужен? Ничем заменять ег оне надо? _________________ Make Money Online Blog
Никто не сталкивался с такой проблемой? Т.е. выходит дело непосредственно в моем хостинге, скрипт не при чем?
Может кто-то подскажет, что можно сделать, чтобы решить проблему?
Саппорт советует оформить запросы по другому, но я если честно боюсь лезть туда. Может как-то со стороны сервера что-то подкрутить-настроить?
Пасиб
У меня тоже такая штука.
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Гб, свободная всегда есть.
До этого пробовал разные конфиги, с огромными кэшами и буфферами- не помогает. 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;
Вот у меня более слабом сервере:
При этом в таблице 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 не получалось..
Перебор не перебор, а шоп работает исправно на сервере с 1гб памяти, при этом он еще занят постоянной раздачей mp3, файлов и держит еще несколько сайтов с серьезным трафиком + на него кладутся бекапы с другого сервера.
Помню большую нагрузку из-за тестового ювелирного шопа. На сколько помню, я взял его за основу для нового магазина. Потом поверх него поставил новый cool_shop. При обновлении базы были ошибки из-за last_modified, исправил и это. И сейчас шоп работает нормально.
Возможно у тебя та же проблема - старая база или база без индексов.
Перебор не перебор, а шоп работает исправно на сервере с 1гб памяти, при этом он еще занят постоянной раздачей mp3, файлов и держит еще несколько сайтов с серьезным трафиком + на него кладутся бекапы с другого сервера.
Помню большую нагрузку из-за тестового ювелирного шопа. На сколько помню, я взял его за основу для нового магазина. Потом поверх него поставил новый cool_shop. При обновлении базы были ошибки из-за last_modified, исправил и это. И сейчас шоп работает нормально.
Возможно у тебя та же проблема - старая база или база без индексов.
Нет, скрипт новый. Сегодня для теста скачал заново cool_shop, поставил новый пирсинговый магазин..та же ситуация.. тормозит зараза.
Я не исключаю, что у меня конфиг mysql кривой, но что- то не похоже, судя по тому сколько разных подборок пробовал, где- то сутки убил на тесты разных конфигов- безрезультатно.
А какая у тебя версия mysql?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах