SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.10.2009 21:07:01

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Опять filesort

Хм. За обновлением ПО серверов что-то увлекся и забыл про mysql.
Запросик:

SELECT  `pid`
FROM  `post`
WHERE  `gid` =1
AND pid >46
ORDER BY `pid` ASC
LIMIT 0, 1


EXPLAIN:
id    select_type    table    type    possible_keys    key    key_len    ref    rows    Extra
1    SIMPLE    post    ref    vindex,gid,navi    navi    4    const    55    Using where; Using index; Using filesort

CREATE TABLE IF NOT EXISTS `post` (
  `gid` int(11) NOT NULL,
  `cid` int(11) NOT NULL,
  `apid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL,
  `name` tinytext NOT NULL,
  `text` longtext NOT NULL,
  `orgtext` longtext NOT NULL,
  `song` varchar(256) NOT NULL,
  `nast` varchar(256) NOT NULL,
  `hoch` varchar(256) NOT NULL,
  `smtr` varchar(256) NOT NULL,
  `date` datetime NOT NULL,
  `editdate` datetime NOT NULL,
  `coment` int(11) NOT NULL,
  `trackback` int(11) NOT NULL,
  `views` int(11) NOT NULL,
  `sub` int(11) NOT NULL,
  `ncom` tinyint(1) NOT NULL,
  PRIMARY KEY (`apid`),
  KEY `vindex` (`gid`,`pid`),
  KEY `gid` (`gid`,`date`),
  KEY `navi` (`gid`,`cid`,`pid`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=167173 ;


Собственно что делать? Это запрос для кнопки "далее" при просмотре дневника. Ищем существующую запись с максимально низким ID от текущего и делаем на неё ссылку.

Ну соответственно есть такой же запрос в обратную сторону для кнопки "назад".
Need help!

Отредактированно Proger (27.10.2009 23:22:31)

Неактивен

 

#2 27.10.2009 22:02:04

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Опять filesort

Ну это тот же вопрос, только с другого боку ведь: USE INDEX vindex?

Неактивен

 

#3 27.10.2009 23:22:11

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Опять filesort

Ерунда, теперь без всяких USE INDEX сам мускуль выбирает vindex в данных запросах.
Индексы менял, видимо не сразу они применились. Сорри за дублирование одного и того же вопроса.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson