Mysql всегда ли хороши индексы?

12
M
На сайте с 20.08.2004
Offline
376
787

я считал что то где происходит выборка чего то по правилам больше или меньше и это чего-то число то лучше использовать индекс.

Однако столкнулся с тем что это не так

вот пример запроса

SELECT t.talk_id, t.talk_topic, t.talk_comments_qty, u.user_email, u.user_nickname
FROM talk t
LEFT JOIN user u ON u.user_id = t.user_id
WHERE t.talk_activity=1 && talk_comments_qty >0
ORDER BY t.talk_last_comment_timestamp DESC
LIMIT 10

если talk_comments_qty индек сто скорость выполнения mysql запроса 0.04 а если talk_comments_qty не индекс то 0.02

(измерения делал на глазок, скажем так, 10 раз вподряд запускал скрипт в mysql-front для поля с индексом и 10 раз для поля без индекса - результат один и тот же)

попинайте если я не прав - правда важнее.

спасибо.

отец сыночка, лапочки дочки и еще одного сыночка
frantic
На сайте с 09.02.2009
Offline
27
#1

После первого выполнения запрос кешируется, так нельзя анализировать. В вашем случае с индексом точно должно быть быстрее. Проверьте лучше EXPLAIN-ом. Но насчет того, что индексы не всегда хороши это да :)

dlyanachalas
На сайте с 15.09.2006
Offline
693
#2
всегда ли хороши индексы?

Всегда.

talk_comments_qty >0

замените на

talk_comments_qty <>0
M
На сайте с 20.08.2004
Offline
376
#3

а как проверять EXPLAIN-ом я то написал но разницы особой не заметил

frantic
На сайте с 09.02.2009
Offline
27
#4
dlyanachalas:
Всегда.

Всегда если их грамотно создавать

frantic добавил 09.03.2010 в 16:45

Miracle:
а как проверять EXPLAIN-ом я то написал но разницы особой не заметил

это хороший вопрос, лучше почитайте где нибудь, я сам до конца не понял

M
На сайте с 20.08.2004
Offline
376
#5
dlyanachalas:
Всегда.

ну скажем при апдейте и инсерте не всегда хороши индексы :) это навскидку

Miracle добавил 09.03.2010 в 16:49

frantic:
это хороший вопрос, лучше почитайте где нибудь, я сам до конца не понял

в том то и дело что все советуют эсплайн, а никто не знает конкретно на что смотреть

я сам такой, запускаю но ничего не вижу, ну кроме цифр в поле rows я ни на что не обращаю внимания

gif Untitled-1.gif
M
На сайте с 20.08.2004
Offline
376
#6

кто подскажет по двум explainам?

frantic
На сайте с 09.02.2009
Offline
27
#7
Miracle:
кто подскажет по двум explainам?

ну с ключом на 50 записей меньше) Смотрят на possible_keys и на key. Да и еще смотрят на type, вот когда all это не есть гуд.

Вообще знаете что, если у вас в таблице и впредь будет около 2500 записей тогда эффект от индексов будет небольшой. Вы запихайте пару миллионов записей и проверьте с индексами и без

[Удален]
#8

filesort - тоже очень не гуд

ну первый зщапрос оптимальнее...

M
На сайте с 20.08.2004
Offline
376
#9
MOP1:
filesort

как от него избавиться и почему не гуд?

зы. может есть где то информация не для гуру по myslq что бы почитать и врубиться во все тонкости?:)

frantic
На сайте с 09.02.2009
Offline
27
#10
Miracle:
как от него избавиться и почему не гуд?

зы. может есть где то информация не для гуру по myslq что бы почитать и врубиться во все тонкости?:)

ну я видел несколько книг по этой теме, правда на не русском

12

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