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




MySQL.RU - Webboard



Вернуться
Медленная работа с большой таблицей (Вадим) 07/12/2012 - 19:21:06
      Re: Медленная работа с большой таблицей (Akina) 07/12/2012 - 22:23:30
      Re: Медленная работа с большой таблицей (Вадим) 08/12/2012 - 15:21:38
      Re: Медленная работа с большой таблицей (Вадим) 08/12/2012 - 15:43:03

> Original message text:
> From: Вадим - 07/12/2012 - 19:21:06
> Subject:Медленная работа с большой таблицей
> -----------------
> Есть таблица на 300к записей.
>
> CREATE TABLE `test_innodb` (
> `id` INT(11) NOT NULL AUTO_INCREMENT,
> `tags` VARCHAR(255) NOT NULL,
> `url` VARCHAR(255) NOT NULL,
> `embeded` TEXT NOT NULL,
> `title` VARCHAR(255) NOT NULL,
> `description` TEXT NOT NULL,
> `enabled` INT(11) NOT NULL DEFAULT '1',
> `created` DATETIME NOT NULL,
> PRIMARY KEY (`id`),
> INDEX `Index 2` (`created`, `enabled`),
> INDEX `Index 3` (`enabled`),
> INDEX `Index 4` (`created`)
> )
> COLLATE='utf8_general_ci'
> ENGINE=MyISAM
>
> Что бы тут не делать простыню, выложил полное описание на пастебин.
> http://pastebin.com/07Jxut9T
>
> Простой запрос в ней выполняется порядка 1 секунды.
> select * from test_innodb where enabled = 1 order by created desc limit 258527,20
>
> Если оставить только Index 2 , то он почему то не используется. А при создании индекса 3, выборка увеличивается до двух секунд.
>
> В общем ничего не понимаю, почему так. Железо core i7 2600к , не нагружено. 300к записей для базы - это ерунда. Планируется пара миллионов. По идее на тестовом варианте я должен получать выбор за 0.0хх секунды, но никак за секунду и более.
>
>
>


From: Вадим - 08/12/2012 - 15:21:38
Subject:Медленная работа с большой таблицей
-----------------
Да пробовал с таким индексом. И даже если его форсировать, то все равно 1 секунда.

explain
select * from test_innodb use index (Index_1)
where enabled = 1 order by created desc limit 258527,20

id;select_type;table;type;possible_keys;key;key_len;ref;rows;Extra
1;SIMPLE;test_innodb;ref;Index_1;Index_1;4;const;299943;Using where

select * from test_innodb use index (Index_1)
where enabled = 1 order by created desc limit 258527,20 ;
/* Affected rows: 0 Found rows: 20 Warnings: 0 Duration for 1 query: 1.061 sec. */

Все равно медленно. Таблица myisam. Если переключить на innodb , то раза в 3 медленнее будет.

По поводу "селективности" не понял вопроса.




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

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

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



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