Оптимизация и кеширование запросов.

RUBBI

Ученик
Всем привет.В общем суть такова.
Есть новостная cms в которой куча запросов в базу на странице,и вывод разной информации с нее.
База mysql.
Собственно сам запрос,как можно оптимизировать запросы не перекапывая весь двиг.
Уменьшить генерацию страницы.Щас она составляет порядка 0.0173 ну и так же сделать более легким вывод страниц.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
RUBBI
У тебя судя по всему нету никакой нагрузки, если страница выдается за столь ничтожный отрезок времени. Можешь помониторить вечерами top, или спец профайлеры сервера.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
RUBBI
То, что ты написал ничего не кеширует.

Кеш бывает файловый, на уровне базы данных, на уровне веб-сервера (кеширование уже готовых страниц), кеширование в оперативной памяти и т.д. Вперед в гугл.
 

baev

‹°°¬•
Команда форума
нунасколько я понял данный код сам кеширует страничку что позволяет снизить нагрузку на сервер иль не так?!
— Вы не ответили на вопрос: при чём тут «запрос»?

А неужели нельзя помочь? Или же вы настолько круты что вам нельзя задавать вопрсы,сразу засмеете? Вы ведь тоже когдато с чего то начинали.Или уже с клавиатурой родились?
— Вам уже помогли: посоветовали не тратить впустую время.
С чего Вы, вообще, взяли, что Вам что-то нужно «оптимизировать»?
 

RUBBI

Ученик
— Вы не ответили на вопрос: при чём тут «запрос»?


— Вам уже помогли: посоветовали не тратить впустую время.
С чего Вы, вообще, взяли, что Вам что-то нужно «оптимизировать»?
Вы конечно извините,но я не знаю как по другому назвать,я довольно таки понятно обьяснил что в данной новостной cms на странице порядка 10 запросов в базу.
типа
PHP:
    $mys = mysql_fetch_array(mysql_query("SELECT * FROM `news` where `golos` != '0' ORDER BY `time` DESC limit 1"));
    $my1 = mysql_fetch_array(mysql_query("SELECT * FROM `news_r` where `namef` = '".$mys['name']."' limit 1"));
    $my2 = mysql_fetch_array(mysql_query("SELECT * FROM `news_r` where `namef` = '".$mys['golos']."' limit 1"));
Я так понимаю это какашко код,и таких какашек полно в скрипте,и естественно это нагружает сервер(хостинг),вот я и спрашиваю как можно хоть немного облегчить работу хостинга не перекапывая весь движек.
Или хотяб подскажите как можно оптимизировать такой код.
То есть как его переписать.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну во первых, проверь, есть ли индексы по нужным полям. Убери нафиг * из запроса, потому как врядли ты используешь ВСЕ поля.
 

RUBBI

Ученик
Ну во первых, проверь, есть ли индексы по нужным полям. Убери нафиг * из запроса, потому как врядли ты используешь ВСЕ поля.
Индексы есть,там есть поля ид которые стоят авто инсремент,наскок я знаю при авто инскременте индекс выставляется автоматом.,во вторых в таблицах всего три четыре поля
котрые используются.
 

baev

‹°°¬•
Команда форума
Вы конечно извините,но я не знаю как по другому назвать
— чего «назвать»? Какое отношение к запросам к базе имеет код «буферизации вывода»?

облегчить работу хостинга не перекапывая весь движек.
1. В русском языке нет слова «движек».
2. Разорвите договор с хостером, этим Вы точно «облегчите работу хостинга», ничего не перекапывая.
3. Вы так и не ответили: с чего Вы взяли, что Вам что-то нужно «оптимизировать»?

подскажите как можно оптимизировать такой код
— я Вам уже написал:
MySQL-мануал: «EXPLAIN»
.
 

Вурдалак

Продвинутый новичок
RUBBI, можно ещё добавить
PHP:
exit;
в самое начало страницы и будет ещё быстрее.

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

Redjik

Джедай-мастер
ferryman
не нормально
RUBBI
замеры через ab проведи пусть хотябы 1000 раз прогонит
 
Сверху