SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 20.02.2010 13:50:01

mavovan
Участник
Зарегистрирован: 20.02.2010
Сообщений: 3

Медленные запросы!!! Как исправить??

Есть таблица в ней 2640561 записей:
CREATE TABLE `domains1` (

  `domain_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

  `name` varchar(255) NOT NULL,

  `created` date NOT NULL,

  `paid_till` date DEFAULT NULL,

  `free_date` date DEFAULT NULL,

  `post_date` date DEFAULT NULL,

  `prefix` varchar(255) DEFAULT NULL,

  `nserver1` varchar(255) DEFAULT NULL,

  `owner_name` varchar(255) DEFAULT NULL,

   `owner_prefix` varchar(255) DEFAULT NULL,

   PRIMARY KEY (`domain_id`),

  UNIQUE KEY `domain_id` (`domain_id`),

  KEY `prefix_index` (`prefix`),

  KEY `domains_created_index` (`created`),

  KEY `domains_paid_till_index` (`paid_till`),

   KEY `owner_name_index` (`owner_name`),

  KEY `owner_prefix` (`owner_prefix`),

  KEY `domains1_name_index` (`name`)

) ENGINE=MyISAM AUTO_INCREMENT=2640561 DEFAULT CHARSET=latin1

Запрос:
SELECT d.domain_id, d.name, d.owner_name, d.owner_prefix, d.created , d.paid_till, d.free_date FROM domains1 d ORDER BY d.name ASC LIMIT 59390,20

выполняется за 0,03 секунды. EXPLAIN говорит что используется индекс  `domains1_name_index`

а вот запрос
SELECT d.domain_id, d.name, d.owner_name, d.owner_prefix, d.created , d.paid_till, d.free_date FROM domains1 d ORDER BY d.name ASC LIMIT 69390,20

выполняется за 30 секунд. EXPLAIN говорит что индексы не используются

В чем может быть проблема?? И как ее можно решить?? И вообще куда лучше смотреть??

Неактивен

 

#2 22.02.2010 00:11:30

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

Re: Медленные запросы!!! Как исправить??

Хм, попробуйте добавить USE INDEX или даже FORCE INDEX. Кажется,
что в данном случае индекс мог бы и неплохо использоваться. Другое
дело, что LIMIT большое число, 20 — это в любом случае плохая идея.

Неактивен

 

#3 05.03.2010 21:09:57

mavovan
Участник
Зарегистрирован: 20.02.2010
Сообщений: 3

Re: Медленные запросы!!! Как исправить??

Спасибо всем! Извините что отнял ваше время))
Я решил проблему не совсем хорошо но начальство устроило.
Создал несколько таблиц содержащих только id для связей уже упорядоченные по нужному полю. Получилось таблиц 6. получая из них только id и все данные только нужной записи.
Да много памяти занимает и после изменения базы нужно запускать скрипт. Но доступ моментальный к любой страницы списка.

Неактивен

 

#4 05.03.2010 21:24:27

mavovan
Участник
Зарегистрирован: 20.02.2010
Сообщений: 3

Re: Медленные запросы!!! Как исправить??

USE INDEX не помог

Неактивен

 

Board footer

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