The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Оптимизация MySQL-запроса"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Оптимизация MySQL-запроса"
Сообщение от zenon emailИскать по авторуВ закладки(??) on 20-Авг-04, 16:46  (MSK)
Имеется таблица:

CREATE TABLE ent_types (
  etid int(11) NOT NULL auto_increment,
  etypeid int(11) NOT NULL default '0',
  is_main enum('0','1') NOT NULL default '0',
  etype varchar(255) NOT NULL default '',
  PRIMARY KEY  (etid),
  KEY etypeid (etypeid)
) TYPE=MyISAM;

Вот запрос:
SELECT * FROM ent_types  ORDER BY etypeid, etype;

EXPLAIN дает такой результат:
+-----------+------+---------------+------+---------+------+------+----------------+
| table     | type | possible_keys | key  | key_len | ref  | rows | Extra          |
+-----------+------+---------------+------+---------+------+------+----------------+
| ent_types | ALL  | NULL          | NULL |    NULL | NULL |   57 | Using filesort |
+-----------+------+---------------+------+---------+------+------+----------------+

Упрощает запрос -- сортировка по индексируемому полю
SELECT * FROM ent_types ORDER BY etypeid;

EXPLAIN:
+-----------+------+---------------+------+---------+------+------+----------------+
| table     | type | possible_keys | key  | key_len | ref  | rows | Extra          |
+-----------+------+---------------+------+---------+------+------+----------------+
| ent_types | ALL  | NULL          | NULL |    NULL | NULL |   57 | Using filesort |
+-----------+------+---------------+------+---------+------+------+----------------+
ТО есть, то же самое.

Делаем сортировку по первичному ключу:
SELECT * FROM ent_types ORDER BY etid;

И EXPLAIN показывает то же самое.
Принудительно пытаюсь заставить использовать индекс
SELECT * FROM ent_types USE INDEX (primary) ORDER BY etid;

Картина не меняется.
Как заставить MySQL использовать индекс для сортировки?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Оптимизация MySQL-запроса"
Сообщение от HellCAT emailИскать по авторуВ закладки(ok) on 21-Авг-04, 12:43  (MSK)
попробуй занести в таблицу несколько сот записей
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Оптимизация MySQL-запроса"
Сообщение от uldus Искать по авторуВ закладки(ok) on 23-Авг-04, 11:33  (MSK)
>попробуй занести в таблицу несколько сот записей

Действиетльно, Оптимизатор если записей мало считает, что простой перебор оптимальней.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Оптимизация MySQL-запроса"
Сообщение от HellCAT emailИскать по авторуВ закладки(ok) on 21-Авг-04, 13:12  (MSK)
Не знаю в чем дело но если сделать тип таблицы InnoDb все пашет
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Оптимизация MySQL-запроса"
Сообщение от zenon emailИскать по авторуВ закладки(??) on 21-Авг-04, 15:49  (MSK)
>Не знаю в чем дело но если сделать тип таблицы InnoDb все
>пашет

InnoDB не желательно использовать.
Хотелось бы обойтись средствами MyISAM

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру