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