Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Оптимизация запроса (sol) 30/06/2003 - 20:25:24
      Re: Оптимизация запроса (Mal Hack) 30/06/2003 - 23:51:21
      Re: Оптимизация запроса (sol) 01/07/2003 - 05:45:52
      Re: Оптимизация запроса (Antony) 01/07/2003 - 08:23:53
      Re: Оптимизация запроса (sol) 01/07/2003 - 16:24:26
      Re: Так что хто нибудь может предложить вариант? (sol) 02/07/2003 - 23:43:31
      Re: Так что хто нибудь может предложить вариант? (Marat_L) 04/07/2003 - 09:17:21
      Re: Так что хто нибудь может предложить вариант? (sol) 05/07/2003 - 17:06:07
      Re: В догонку. (sol) 05/07/2003 - 17:12:09
      Re: Так что хто нибудь может предложить вариант? (илья) 28/01/2005 - 12:56:56

> Original message text:
> From: sol - 30/06/2003 - 20:25:24
> Subject:Оптимизация запроса
> -----------------
> Есть вот такой запрос
>
> SELECT m1.m_id as into_id
> FROM `1_all_msg` AS m1
> LEFT JOIN `1_all_msg` AS m2
> ON m2.m_id = ( m1.m_id + 1 )
> WHERE m1.m_id >='500000000' and m2.m_id IS NULL
> order by m1.m_id limit 0, 1
>
> То есть он вытаскивает ИД более 500000000 за которым не существует записи.
> Как его можно оптимизировать? Бо при большом кол-ве записей порядка 200 тысяч, он очень долго выполняется.
>


From: Marat_L - 04/07/2003 - 09:17:21
Subject:Так что хто нибудь может предложить вариант?
-----------------
У тебя происходит объединение практически без использования индексов. Поэтому медленно. Декартово произведение 200000*200000=40000000000.

Хотя,я думаю на m_id у тебя есть индекс а на m_id+1 - точно нет. По-моему MySQL не создает индексы на выражения.

Так вот.
Если тебе НАДО оптимизировать запрос именно в таком виде, попробуй завести в таблице поле m_id1, например, которое будет содержать m_id+1, потом создай индекс по нему и делай объединение с участием этого поля. Должно быть быстрее.

А надо ли?

Чем для твоей тривиальной задачи не подходит auto_increment?
Для обеспечения неповторяемости отлично подходит !!!




[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
19810



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |