Index

nagash

Guest
Index

помогите разобраться...
есть база довольно большая...
для ускорения её работы пытаюсь разобраться с индексами...

но никак не пойму как их использовать...
допустим я ставлю индексы на некоторые поля... что мне это даёт?
как это оптимизирует работу мюскла...
мне было бы любопытно узнать про сам принцип...
допустим вот этот вариант
http://www.mysql.com/doc/en/GIS_using_a_spatial_index.html
очень неплохо у них там с индексмо время поиска 0.00 а без индекса 0.46...
неплохой прирост... =)

помогите плз разобраться
 

Апельсин

Оранжевое создание
Ну учти следующие пункты:
1. используется только 1 индекс на таблицу в запросе
2. индексы создаются на те поля по которым идет поиск
3. есть русская документация, может тут будет понятней:
http://www.mysql.com/doc/ru/MySQL_indexes.html
http://www.mysql.com/doc/ru/Indexes.html
http://www.mysql.com/doc/ru/Multiple-column_indexes.html
http://www.mysql.com/doc/ru/Query_Speed.html
 

nagash

Guest
я всё это прочитал уже...
спасибо за помошь...

вот я только не могу разобраться...

у меня наиболее часто идёт поиск по двум полям id,owner
одновременно. поле id как обычно примари кей...

если я хочу чтобы у меня шёл индекс по двум полям мне обязательно добавлять обьеденённый индекс для двух полей или достаточно добавить индекс для поля owner?
 

nagash

Guest
смысла не вижу...
может тебе ещё дамп сделать? =)

мне кажется я всё довольно хорошо обьяснил... =)
ну для особо любопытных я готов разжевать...

я же написал
2 поля
id - primary key
owner - intigrer

выборка идёт
как я тоже писал

SELECT * FROM blabla WHERE id = $id AND owner = $owner

нужно ли мне делать обьеденённый индекс этих двух полей или достаточно сделать индекс для поля owner (моё предположение строится на том, что поле id уже primary key)
 

HEm

Сетевой бобер
если ты делаешь индекс по полям в таком виде:
поле1, поле2, поле3
то у тебя автоматически создается не один а несколько индексов
1 - (поле1)
2 - (поле1, поле2)
3 - (поле1, поле2, поле3)
зависит от порядка перечисления полей при объявлении индекса
 

nagash

Guest
значит вывод такой что надо делать обьеденённый индекс для двух этих полей?
 

mix

Guest
Если у тебя нет запросов
SELECT * FROM blabla WHERE owner = $owner
то можно сделать объединенный индекс. Если есть, то лучше по индексу на каждое поле.
 
Сверху