Задавайте вопросы, мы ответим
Вы не зашли.
Привет.
Возник вопрос по использованию дополнительных индексов.
У меня есть таблицы: Фирмы, Форматы и Фирмы_Форматы (пишу на русском чтоб ничего не перепутать). Связь таблиц многие ко многим (HABTM).
И есть связь Фирмы belongsTo таблица с городами.
В таблице фирм поля:
id (ключ),
city_id,
active, (поле показывает активен ли показ фирмы на сайте или нет)
все остальные поля с информацией.
В таблице Форматы:
id (ключ),
format (название формата)
В таблице Фирмы_Форматы:
id (ключ),
firm_id,
format_id
Соответственно это выглядит так:
id firm_id format_id
1 200 3
2 200 12
3 415 3
Ну и т.д.
В таблице городов:
id (ключ),
название города
Вопрос: статистика в phpmyadmin сообщает что мол мало используется индексов. Я делаю много выборок с самыми разными условиями + часто ставлю условие чтоб active был равен 1.
Например все фирмы из одного города, все фирмы из одного города + один или несколько форматов и т.д. в самых разных комбинациях.
Какие мне следует добавить индексы и на какие поля? А то я уже запутался, вроде есть и простые и комбинированные и т.д.
Отредактированно Вася (21.02.2013 17:58:35)
Неактивен
Честное слово, прочёл. Но не понял все делать их индексами или нет, и нужно ли делать индексом поле active. Можете в моём примере подсказать? Я дам самые частые запросы если надо.
Неактивен
На active не нужно, т.к. он имеет низкую кардиналити (принимает только да значения 0 и 1).
На все не нужно. Честно говоря, добавить к той методике, что описана по ссылке нечего:
http://sqlinfo.ru/forum/viewtopic.php?pid=26006#p26006 и далее
Неактивен
Спасибо за ответы. В общем я ещё раз всё прочитал, появилось некоторое (небольшое) понимание.
Я правильно понял что если я сделаю некоторые лишние индексы, то я потеряю только в объёме который занимает база? А так всё равно производительность будет лучше чем если совсем без индексов?
Отредактированно Вася (21.02.2013 20:46:28)
Неактивен
Лишние индексы, кроме того, замедлят операции добавления/изменения данных.
Неактивен
В моём случае добавляют/изменяют данные раз в несколько дней. Так что мне главное чтоб как можно быстрее и легче для сервера работало на вывод.
Неактивен