Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Добрый вечер!
Интересует мнение специалистов, так как сам могу квалифицировать свои знания как начинающий :-)
Есть таблица на InnoDb, три столбца , 20 000 000 строк файл ibdata1=10Gb
Вопрос:
Возможно ли организовать SELECT по одному столбцу, чтоб время ответа было мене 2сек ?? Своими силами не получается, удалось только за 40сек это критически неприемлемо, INDEX есть по всем трем столбцам, что еще можно предпринять?? моих знаний явно не хватает? помогите пож..
Отредактированно Taxist (02.06.2013 22:44:50)
Неактивен
Индекс по всем трём стобцам - это один индекс, содержащий 3 столбца или 3 индекса на каждый столбец? Судя по времени выполнения, вероятно один индекс с тремя столбцами, в таком случае выборку Вы делаете по полю, которое находится не на первом месте в этом индексе, а значит этот индекс не даёт никакого преимущества.
Для более полной картины покажите структуру таблицы и сам запрос.
Неактивен
Больщое спасибо за ответ! Этого я действительно не знал.. попробую поменять местами
Индекс один содержащий три столбца в себе:
PRIMARY KEY (`ART_ID`, `BRANDS`, `CODE`)
Запрос на выборку выглядит вот так:
SELECT BRANDS FROM `TABLE` WHERE CODE='".$NUMBER2."' GROUP BY BRANDS
таким образом результат выборки будет список названий брэндов у которых в ассортименте артикулов есть полное совпадение с искомым номером артикула
как видно из запроса поиск веду по CODE а он на самом деле не первый в Index
Сразу же возник вопрос, если ли процедура по перестановке порядка столбцов в Index без удаления индекса таблицы с последующим созданием нового с верным порядком?
Отредактированно Taxist (03.06.2013 21:56:02)
Неактивен
Мне известна только одна процедура: удаление старого индекса и создание нового. Время не стоит на месте, может выдумали возможность просто апдейтнуть значения индекса, хотя не уверен
В Вашем случае лучше всего будет работать индекс с таким порядком: `code`, `brands`, `art_id`. Но при этом не забывайте и про другие запросы к этой таблице, если они есть. Можно также добавить новый индекс KEY(`code`,`brands`), табличка конечно прибавит в весе и запись в неё несколько увеличится по времени, но Вашу проблему это решит.
Неактивен
Подправил последовательность столбцов индекса, теперь запрос отвечает менее чем за пол секунды, результат достигнут ОГРОМНОЕ СПАСИБО за помощь! Вы просто молодцы ребята!!! :-)) И самое главное что делитесь знаниями, отличный форум и форумчане !!:-)))
Неактивен
Страниц: 1