Да, но я могу предположить, что в PHP это сделается быстрее т.к. он заточен на такие задачи. А вот всё это вычислять в MySQL и на постоянную основу, я бы не рекомендовал.
Вижу уже тупость в своем варианте. И потом это функция, она вызывается дохренеллион раз. Решил пихну-ка я в сессию список верхних разделов, их всего-то от трех до шести...
Разница в одну. Да и все равно я прибил свою правку. Она поломала местами сайт, ибо блин я не учел, что сразу под 0 у меня не только блин 1, а еще пяток. Запихивать их в array это костылькостыльный, так как на разных сайтах (ЦМС обслуживает 7 доменов) чуть рознятся... Чешу репу...
Зато походу оптимизировал еще несколько сотен запросов - обнаружил что рекламные блоки опрашиваются всегда все возможные (32 шт), тогда как показываются все 4-5. Сделал лишний запрос на проверку количества не скрытых - получил минус 300 запросов.
muzslava#: П.С. Программист говорит, что для мета-тегов мы применяем спец. компонент, который должен выдавать правильные данные для поисковиков. Получается этот компонент работает некорректно или как?
... как дети, право слово... А что вы ожидаете он вам скажет? Правду? Что "да, я профнепригоден, сделал херню, вот ваши деньги назад и наймите другого"? Это не в нашей вселенной, вам в параллельную.
Резюме другого вы нигде не получите: сайт говно, переделывать полностью. И тогда будет счастье. Через боль, но потеря денег - разве это боль? Это расходы.
muzslava#: Есть ли возможность как-то сделать сейчас так, чтобы Яндекс индексировал все мета-теги?
Конечно. Вам же говорят тут всякие люди - ПЕРЕПИСЫВАТЬ САЙТ. Или - забить и башлять втрое за рекламу.
Не вы первые - не вы последние пали жертвами инфоцыган. "Я вам такой сайт напишу - закачаетесь, все по последней моде и слову техники. Жава, ноде, искусственный интеллект. Деньги на карту шлите." А на практике - фрилансер за 10 000р слабал бы на бесплатном шаблоне WP и это было бы гораздо лучше чем сейчас, по крайней мере - для старта.
Убейте что есть, просто в помойку. И наймите студента - пусть на ВП сделает быстро и дешево.
Вы же зарабатывать на сайте хотите? Ну вот расходы просто возрасли.
Snake800#: Надо сокращать количество запросов. Уверен, что это можно реализовать относительно легко
Итак, первый успех. Обратил внимание, что при построении иерархии меню (их два, одно правда кешируется) цикл с запросом в БД пробегает даже если ИД раздела =1, то есть верхний уровень... Сменил начальный счетчик в функции с 0 на 1, и в if $1>0 => $i>1. Одним махом убрал 200 запросов, то есть на 15% полегчало...
вот теперь надо наблюдать... Вроде голову поломал, echo понавставлял - не должно поломать... Надеюсь.
Sly32#: Возможно как то используется при выводе полученных данных, а возможно и просто так добавили, не подумав.
функция 5 строк, $myrow["id"] нет там... Походу неподумав... Я на самом деле за программистом ужа находил подобное, как поумнел, но каждый раз сильно сомневаюсь - может это я дурак на самом деле... Но пока - нет.
Эка занесло...
Да. Глупо. Но я только сейчас узнал, что кроме $_REQUEST есть $_GLOBALS
Счас, младший поплавает в бассейне, я до клавы доберусь. Уничтожу еще пару сотен тараканов.
Да, но я могу предположить, что в PHP это сделается быстрее т.к. он заточен на такие задачи. А вот всё это вычислять в MySQL и на постоянную основу, я бы не рекомендовал.
Вижу уже тупость в своем варианте. И потом это функция, она вызывается дохренеллион раз. Решил пихну-ка я в сессию список верхних разделов, их всего-то от трех до шести...
Так, придумал версию 2 с определением уровня каталога... Вернусь - буду испытывать
function level($id) {$array_top = mysql_query("SELECT id FROM `content` WHERE id_parent='0'");
$array_top = mysql_fetch_array($array_top);
if (in_array($id,$array_top)) {
$level = 1;
} else {
$level = 0;
while ($id > 0) {
$result = mysql_query("SELECT id,id_parent FROM `content` WHERE id='$id'");
$myrow = mysql_fetch_array($result);
$id_parent = $myrow["id_parent"];
$level = $level+1;
$id = $id_parent;
}
}
echo "<script>console.log('Level result: " . $level . "//n');</script>";
return $level;
}
Возможно где-то ДО этого идёт проверка, что id точно является числом
А, это... Да, у меня все строго. Только числа, причем нельзя даже + вставить, а то плодить яндекс стал дубли, так как изначально ЦМС проглатывала.
Центос 7
Вообще умерла.
Я в итоге поставил Alma Linux 8 (потому что 9 не поддерживается FastPanel-ью)
как минимум
Разница в одну. Да и все равно я прибил свою правку. Она поломала местами сайт, ибо блин я не учел, что сразу под 0 у меня не только блин 1, а еще пяток. Запихивать их в array это костылькостыльный, так как на разных сайтах (ЦМС обслуживает 7 доменов) чуть рознятся... Чешу репу...
Зато походу оптимизировал еще несколько сотен запросов - обнаружил что рекламные блоки опрашиваются всегда все возможные (32 шт), тогда как показываются все 4-5. Сделал лишний запрос на проверку количества не скрытых - получил минус 300 запросов.
Во-первых, у вас тут SQL Injection.
Хде и как?
Во-вторых, level лучше добавить в таблицу content чтоб он выбирался одним запросом, а не в цикле
Это я сразу понял! Но тут не обойтись тремя строчками кода, дофига всего переделывать...
Ты не прав. Выше я написал, почему.
Там вот и все:
function level($id) {$level = 1;
while ($id > 1) {
$result = mysql_query("SELECT id,id_parent FROM `content` WHERE id='$id'");
$myrow = mysql_fetch_array($result);
$id_parent = $myrow["id_parent"];
$level = $level + 1;
$id = $id_parent;
}
return $level;
}
Это уже мной подкрученная. Была
function level($id) {$i = 0;
while ($id > 0) {
$result = mysql_query("SELECT id,id_parent FROM `content` WHERE id='$id'");
$myrow = mysql_fetch_array($result);
$id_parent = $myrow["id_parent"];
$i = $i+1;
$id = $id_parent;
$level = $i;
}
return $level;
}
Вот вам результат работы этого компонента:
muzslava #:
П.С. Программист говорит, что для мета-тегов мы применяем спец. компонент, который должен выдавать правильные данные для поисковиков. Получается этот компонент работает некорректно или как?
... как дети, право слово... А что вы ожидаете он вам скажет? Правду? Что "да, я профнепригоден, сделал херню, вот ваши деньги назад и наймите другого"? Это не в нашей вселенной, вам в параллельную.
Резюме другого вы нигде не получите: сайт говно, переделывать полностью. И тогда будет счастье. Через боль, но потеря денег - разве это боль? Это расходы.
Есть ли возможность как-то сделать сейчас так, чтобы Яндекс индексировал все мета-теги?
Конечно. Вам же говорят тут всякие люди - ПЕРЕПИСЫВАТЬ САЙТ. Или - забить и башлять втрое за рекламу.
Не вы первые - не вы последние пали жертвами инфоцыган. "Я вам такой сайт напишу - закачаетесь, все по последней моде и слову техники. Жава, ноде, искусственный интеллект. Деньги на карту шлите." А на практике - фрилансер за 10 000р слабал бы на бесплатном шаблоне WP и это было бы гораздо лучше чем сейчас, по крайней мере - для старта.
Убейте что есть, просто в помойку. И наймите студента - пусть на ВП сделает быстро и дешево.
Вы же зарабатывать на сайте хотите? Ну вот расходы просто возрасли.
Надо сокращать количество запросов. Уверен, что это можно реализовать относительно легко
Итак, первый успех. Обратил внимание, что при построении иерархии меню (их два, одно правда кешируется) цикл с запросом в БД пробегает даже если ИД раздела =1, то есть верхний уровень... Сменил начальный счетчик в функции с 0 на 1, и в if $1>0 => $i>1. Одним махом убрал 200 запросов, то есть на 15% полегчало...
может быть даже не поломав сайт.
вот теперь надо наблюдать... Вроде голову поломал, echo понавставлял - не должно поломать... Надеюсь.
Возможно как то используется при выводе полученных данных, а возможно и просто так добавили, не подумав.
функция 5 строк, $myrow["id"] нет там... Походу неподумав... Я на самом деле за программистом ужа находил подобное, как поумнел, но каждый раз сильно сомневаюсь - может это я дурак на самом деле... Но пока - нет.