Установка индексов

[Удален]
411

Есть таблица размер - 2,5 Гб. около 300к строк

Запрос виде - select * from posts where post_category = 3 - занимает 20 сек.

Сервер - 2гб оперативки, 2-х ядерн. проц.

Я понимаю что-то здесь не так, скажите, стоит установить индекса на поле post_category и поможет ли это ?

K3
На сайте с 30.08.2012
Offline
1
#1

Стоит, поможет.

Если упрощенно, то вместо скана всей таблицы будет индексный доступ.

Если строк с значений post_category = 3 в процентном отношении мало - будет сильно быстрее.

siv1987
На сайте с 02.04.2009
Offline
427
#2

Поставить первичные ключи если их нету.

Поставить индексы на часто используемые поля в условиях.

Изменить запрос на:

ids = SELECT %pimary_key% FROM posts WHERE post_category=3

SELECT * FROM posts WHERE %pimary_key% IN (ids)

[Удален]
#3
kartas39:
Стоит, поможет.
Если упрощенно, то вместо скана всей таблицы будет индексный доступ.
Если строк с значений post_category = 3 в процентном отношении мало - будет сильно быстрее.

Да, спасибо

Сейчас результат - 15,422 всего, запрос занял 0.0018 сек., вместо 2-ух двух минут раньше

---------- Добавлено 24.10.2012 в 18:06 ----------

siv1987:
Поставить первичные ключи если их нету.
Поставить индексы на часто используемые поля в условиях.
Изменить запрос на:
ids = SELECT %pimary_key% FROM posts WHERE post_category=3
SELECT * FROM posts WHERE %pimary_key% IN (ids)

Да, пробовал и по первичному ключу, результат не на много лучше

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий