Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Индексирование для поиска по БД


Автор: duante 28.4.2009, 13:18
Собственно, вопрос у меня нубский, особо никогда не вдавался в индексацию.

Так вот, допустим в таблице (usr) три столбца (id, name, prop) в ней 500.000 записей. Я так понимаю, что после добавления одной строки происходит переиндексация или обновление индекса. Так вот вопрос: индекс содержит данные о всех полях всех трех столбцов? Т.е. можно искать с одинаковыми затратами времени и ресурсов по всем трем столбцам? Или же это надо где-то указать?

Автор: skyboy 28.4.2009, 14:37
индекс распространяется только на те поля("столбцы"), для которых он создан.
Создан индекс на одно поле - только для поиска по этому полю и будет использоваться.
Создан на два поля - может использоваться на первое по порядку(порядку объявления в индексе) или на оба(но в порядке объявления в индексе).

Автор: duante 28.4.2009, 15:19
Хорошо. Как создать индексы на нужные поля? только CREATE INDEX или есть другие способы и какие?

извиняюсь, конечно, за такие вопросы, но мне достаточно сказать один раз ))

Автор: skyboy 28.4.2009, 17:10
Цитата(duante @  28.4.2009,  14:19 Найти цитируемый пост)
или есть другие способы и какие?

альтернатива ради альтернативы? smile Чем CREATE INDEX не устраивает?
Ну, в принципе, можно и в http://dev.mysql.com/doc/refman/5.1/en/create-table.html указать индексы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)