|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.08.2013, 16:40 | #1 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Много индексов + игнорирование индексов
Всем привет. Читал недавно различные статьи про оптимизацию выборок посредством создания индексов. Пришла такая идея:
Есть поля: a,b,c,d Создаем комбинированные индексы: abcd(a,b,c,d) bcd(b,c,d) abd(a,b,d) ad(a,d) Теперь, делая выборку с поиском по полям a, b и d, мы игнорируем лишние индексы: Код:
Конечно для жирной базы индексы будут занимать очень много места, но зато какая скорость. Как вам идея? |
06.08.2013, 17:29 | #2 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
06.08.2013, 20:54 | #3 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Почему запрос может работать в несколько раз дольше?
|
06.08.2013, 21:17 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Почему - не скажу, но как-то сталкивался с этим. А вообще СУБД при наличие нескольких индексов само подбирает необходимый в зависимости от условий во WHERE или JOIN. И сравните производительность без указания IGNORE INDEX и с ним
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
06.08.2013, 21:17 | #5 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,834
|
Почитай еще про частичное использование индекса (index range scan). В нормальной СУБД это должно быть реализовано. Суть в том, что при наличии индекса (a, b, c) он используется также и для поиска по (a) и (a, b).
Наличие индекса на все поля -- крайний случай. Может быть продиктован как особенностями задачи, так и некомпетентностью проектировщика.
В разработке: воспроизводственный контур ИТ
|
06.08.2013, 22:09 | #6 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Да уж так сразу то и не скажешь, а там еще и связи с другими таблицами.. надо все тестировать вообщем)
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание индексов | Droid | SQL, базы данных | 5 | 02.02.2012 16:30 |
удаление индексов массива | TotKtoNado | БД в Delphi | 13 | 05.08.2011 17:03 |
найти добуток индексов | misha25525 | Помощь студентам | 0 | 11.04.2010 11:57 |
найти суму индексов | misha25525 | Помощь студентам | 0 | 11.04.2010 11:51 |
Простановка индексов улиц | 6ecuk | Microsoft Office Excel | 8 | 25.09.2009 12:36 |