6319       Конференция Inetprog SoobCha           письмо # 6320 6322  


Тема: Re: проблема с ескьюел
Дата: Mon, 24 Mar 2008 09:44:27 +0500
Кому: "Inet Prog" <Inetprog@soobcha.org>
Кодировка: text/plain; format=flowed; delsp=yes; charset=koi8-r

     On Sun, 23 Mar 2008 01:29:50 +0500, Ulrikhe Lukoie <lukoie@yandex.ru> wrote:

здрасте всем
подскажите, пол, чем может быть вызвана вот такая вот проблемка, и как
искать пути ее решения?:

Превышение квоты на загрузку сервера баз данных.
Время исполнения, секунд - 11
Кол-во просмотренных строк - 50873
Запрос:
-------
use 1gb_messianic;
SELECT u.id, ifnull(u.username, 'Guest') as username, ifnull(u.name,
'Guest') as name, sb.subject, sb.id as sbid, sb.catid, from_unixtime(sb.time)
as date, sb.hits, sb.locked, sb.parent, sc.name as catname FROM
mos_sb_messages AS sb LEFT JOIN mos_users AS u ON sb.userid = u.id
INNER JOIN mos_sb_categories sc on sb.catid=sc.id WHERE 1=1 AND
(sc.pub_access<='18') ORDER BY sb.time DESC LIMIT 12;
-------

ВАЖНО: ключевой параметр - количество просмотренных
строк, а не время исполнения запроса (время
роли не играет).

заранее большое спасибо за помошь

1. дампим БД к себе на комп, чтобы зря не грузить сервер
2. дописываем к запросу EXPLAIN:
EXPLAIN SELECT u.id, ifnull(u.username, 'Guest') as username, ifnull(u.name,
3. медитируем над:
http://www.mysql.ru/docs/man/EXPLAIN.html
4. экспериментируем с порядком джоинов, если можно, избавляемся от LEFT JOIN
5. Изучаем вопрос создания дополнительных индексов для полей, используемых в джоинах и where

большего тебе не скажет никто, пока не дашь доступ к самой БД

  6319 6322  
 
???Mail.ru ??? ?????
╘ 2000-2006 Сообщество Чайников