[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: osCommerce или гАвнокод под соусом
kirik
Ребят, это ППЦ... Вот сижу и уже полчаса от шока отойти не могу.. Я конечно читал на хабре, что osCommerce это задница, но чтобы такая откровенная я не ожидал... Мало того что там черт ногу сломит в коде, так эта хрень еще не понятно как летает.. На каждый пук там есть свой запрос. Работаю над сайтом http://onlinetattoowholesale.com/ , сколько скажете запросов должно уходить на генерацию индексной страницы?



А вот и обломитесь! 121 запрос чтобы вывести эту чертову страницу!!! Нет я не ошибся, именно сто двадцать один! Я уже не стал смотреть, в какой именно космос эти запросы уходят и зачем..



Спустя 3 часа, 22 минуты, 57 секунд (25.09.2009 - 09:16) glock18 написал(а):
не могу сказать, что работает быстро, но меня не успевает утомить ожиданием.)))

а запросы, наверно типа:
Код
$imgId = 10;
select kartinka from tablichkaCacheTable5 where id = 10;

if ($kartinka = mysql_result($result, 0, 0))
 return $kartinka;

// Не нашли картинку в табличке с кэшем 5 уровня (вааапще не в курсе что за такой уровень, но надо же как-то количество запросов увеличить)

select kartinka from tablichkaCacheTable4 where id = 10;

if ($kartinka = mysql_result($result, 0, 0))
 return $kartinka;

select kartinka from tablichkaCacheTable3 where id = 10;

if ($kartinka = mysql_result($result, 0, 0))
 return $kartinka;

select kartinka from tablichkaCacheTable2 where id = 10;

if ($kartinka = mysql_result($result, 0, 0))
 return $kartinka;

select kartinka from tablichkaCacheTable1 where id = 10;

if ($kartinka = mysql_result($result, 0, 0))
 return $kartinka;

// Ну вот, придется доставать из таблички с картинками. а так не хотелось

select kartinka from tablichkaKartinka5 where id = 10;

if ($kartinka = mysql_result($result, 0, 0))
 return $kartinka;

// Хха-ха. Не ждали! А этих табличек тоже 5. Вот теперь в них искать будем

select kartinka from tablichkaKartinka4 where id = 10;

if ($kartinka = mysql_result($result, 0, 0))
 return $kartinka;


А можно изврариться еще круче:
Код
$imgId = 10;
$cacheTableNum = 10;
// типа у нас может быть таблиц с кешированием сколько угодно, и эта величина очевидно переменна во времени...
for ($i = 1; $cacheTableNum <= 10; $i++)
{
 show tables like 'tablichkaCacheTable' . $i;
 if (mysql_num_rows())
 {
   select kartinka from tablichkaCacheTable{$i} where id = 10;
   if ($kartinka = mysql_result($result, 0, 0))
     return $kartinka;
 }
}

// ааа, висё пропало. ми больше не увидем эту картинку...

exec('format c:/'); // Уносим ноги отсюда - нас раскрыли.

Спустя 22 секунды (25.09.2009 - 09:16) SunSet написал(а):
Сто двадцать.. сколько?? А я то думал что у меня много при моих то 10-20ти запросах... blink.gif

Спустя 44 минуты, 46 секунд (25.09.2009 - 10:01) twin написал(а):
Цитата
Работаю над сайтом http://onlinetattoowholesale.com/

О как:

Цитата
Страница, которую Вы хотите посетить, содержится в списке мошеннических сайтов. Вероятно, будет предпринята попытка получить от Вас обманным путем данные личного или финансового характера. Компания Opera Software настоятельно не рекомендует посещать эту страницу.

Спустя 5 часов, 2 минуты, 10 секунд (25.09.2009 - 15:03) FatCat написал(а):
Цитата (kirik @ 25.09.2009 - 06:53)
А вот и обломитесь! 121 запрос чтобы вывести эту чертову страницу!!!

Мне приходилось сознательно делать такие страницы.
Например "прибамбасы" при просмотре списка топиков, обновившихся с момента последнего посещения:
  • сколько всего сообщений в этом топике;
  • сколько сообщений добавилось с момента последнего посещения;
  • есть ли в топике "свои" сообщения, и если есть, то айдишник последнего;
  • отслеженный трафик из поисковок в этот топик;
  • в скольких статьях глоссария использовался...
Запрос и без этого тяжеленный с множеством джойнов: сопоставляем с правми доступа пользователя, тянем информацию о родительском форуме, сопоставляем с модераторами...
Поэтому "прибамбасы" вынес в отдельный цикл.

Что-то, конечно, оптимизирована архитектурой базы; например, в таблице топиков есть поле "число сообщений", которое пересчитывается при каждом добавлении/удалении сообщения в топик, и есть поле "число просмотров", перезаписываемое при каждом обращении к странице...
Но не повесишь же в таблицу топика список всех авторов сообщений... То же и с глоссарием.

Пробовал получать всю информацию одним запросом. Мало того, что сам запрос занимал пол-экрана текстом, он еще и выполнялся секунд 10.
Сотня запросов в цикле на круг выполняется 0.1-0.2 секунды, что вполне приемлемо.

Опять же в цикле удобнее отрегулировать права; например те же вхождения в глоссарий нужны только модераторам, и только в своих разделах; поэтому запросы к таблице глоссария идут только у модераторов. В итоге, простые посетители создают минимальную нагрузку, максимум нагрузки дают админы и супермодеры. laugh.gif Что тоже правильно: если у админа страница нормально грузится, значит у простых пользователей тем более не будет проблем.

Спустя 3 часа, 4 минуты, 18 секунд (25.09.2009 - 18:07) kirik написал(а):
glock18
Именно! Там смесь того что ты написал smile.gif Меню генерится в циклах, в циклах же достаются подкатегории для каждого пункта меню..

Цитата (twin @ 25.09.2009 - 02:01)
О как:

Гм.. Не знаю что там может быть.. Там менюшка какая-то странная, мож она раздражает Оперу..?)

FatCat
Ну видишь, у тебя форум с хитрыми выборками, а там тупо страничка, где по-логике достаточно 3-4х запросов smile.gif

Спустя 1 час, 33 минуты, 51 секунда (25.09.2009 - 19:41) Sylex написал(а):
про CMS Drupal слышал, что средненький проект на ней вытягивает до 700-800 запросов на одну страницу, вот это жесть =)

Спустя 11 минут, 41 секунда (25.09.2009 - 19:53) kirik написал(а):
Sylex вернулся! smile.gif

Цитата (Sylex @ 25.09.2009 - 11:41)
до 700-800 запросов на одну страницу, вот это жесть

это печально...

Спустя 25 минут, 50 секунд (25.09.2009 - 20:19) glock18 написал(а):
Да, Sylex, с возвращением smile.gif

Цитата
про CMS Drupal слышал, что средненький проект на ней вытягивает до 700-800 запросов на одну страницу, вот это жесть =)

это жесть... но думаю, что это преувеличение - в любом случае зависит не только от cms, но и от кривости рук того, кто на ней пишет smile.gif

Спустя 1 день, 14 часов, 26 минут, 54 секунды (27.09.2009 - 10:46) Sylex написал(а):
kirik, glock18

спасибо smile.gif Да я все равно щас редко на форуме, смотрю только интересные темы smile.gif

Цитата (glock18 @ 25.09.2009 - 23:19)
это жесть... но думаю, что это преувеличение - в любом случае зависит не только от cms, но и от кривости рук того, кто на ней пишет smile.gif


безусловно! smile.gif


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.