Поскольку индекс начинается со столбца sid, он должен выполнить сканирование (начало в начале, чтение до конца) либо индекса, либо таблицы, чтобы найти ваши данные, соответствующие другим 3 столбцам. Это означает, что он должен прочитать все 25 миллионов строк, чтобы найти ответ. Даже если он читает только строки индекса, а не таблицы, это большая работа.
Представьте себе телефонную книгу большого города Нью-Йорка, организованную (с «индексом») Фамилия, Имя.
Вы отправляете SELECT [Last Name] FROM NewYorkPhoneBook WHERE [First Name] = 'Thelma'
Он должен прочитать все 25 миллионов записей, чтобы найти всех этих Тельм. Если вы не укажете фамилию, а затем сможете перейти непосредственно на страницу, где эта фамилия применяется впервые (поиск), или иметь индекс, организованный по имени (поиск по индексу с последующим поиском по таблице, иначе "поиск закладок"), нет никакого способа обойти это.
Индекс, который вы создадите для ускорения запроса, находится на uid, area, type
. Вы можете включить sid, но не указывать его, если sid является частью первичного ключа.
Примечание. Таблицы часто имеют несколько индексов. Просто отметьте, что чем больше индексов, тем ниже скорость записи. Ненужные индексы могут снизить общую производительность, иногда радикально. Тестирование и в конечном итоге опыт помогут вам в этом. Кроме того, рассуждение об этом как о реальной проблеме (как примеры моей телефонной книги) может действительно помочь. Если это не имеет смысла для телефонных книг (и отдельных индексов телефонных книг), то, вероятно, не будет иметь смысла в базе данных.
Еще одна вещь: даже если вы поместите индекс в эти столбцы, если ваш запрос в конечном итоге будет тянуть большой процент строк в основной таблице, будет все равно дешевле сканировать таблицу, чем выполнять поиск по закладкам (ищите индекс, затем ищите таблицу для каждой найденной строки). Точный «переломный момент» в том, делать поиск закладок с поиском или сканировать таблицу, - это не то, что я могу сказать вам на макушке, но это основано на твердой математике.