Я в основном разработчик ActionScript и ни в коем случае не специалист в SQL, но время от времени мне приходится разрабатывать простые серверные вещи. Итак, я думал, что попрошу более опытных людей по поводу вопроса в названии.
Мое понимание заключается в том, что вы не получаете многого, указав индекс в столбце, который будет содержать несколько разных значений. У меня есть столбец с вещественным значением (на самом деле это небольшой int, но я использую его как флаг), и этот столбец используется в предложениях WHERE большинства запросов, которые у меня есть. В теоретическом "среднем" случае половина значений записей будет равна 1, а другая половина - 0. Таким образом, в этом случае механизм базы данных мог бы избежать полного сканирования таблицы, но в любом случае ему придется читать много строк (всего строк /2).
Итак, должен ли я сделать этот столбец индексом?
Для записи я использую Mysql 5, но меня больше интересует общее обоснование того, почему оно делает/не имеет смысла индексировать столбец, который я знаю, который будет иметь низкую мощность.
Спасибо заранее.