powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как работает индекс?
3 сообщений из 3, страница 1 из 1
Как работает индекс?
    #38698325
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые знатоки, искал как работает индекс и нашел интересные вещи, для примера если я делаю запрос на два поля то индекс работает по первому запросу а второй запрос работает перебором пропуская индексы даже если существуют индивидуальные. Все пишут что при запросе на два поля нужно делать комбинированный индекс то есть на два поля тогда запрос будет просто летать.
Теперь вопрос если я делаю запрос на три поля а у меня индекс на два будет ли работать комбинированный индекс из двух полей для трех? И нужно ли мне делать индекс на три поля? Или это решается только практическим методом?

Извиняюсь если что-то не внятно сказал, я не волшебник я только учусь.
...
Рейтинг: 0 / 0
Как работает индекс?
    #38698436
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnews,

"если я делаю запрос на три поля а у меня индекс на два будет ли работать комбинированный индекс из двух полей для трех?"
будет

"И нужно ли мне делать индекс на три поля?"
единого ответа нет, т.к. в таком подходе есть и плюсы и минусы. Надо смотреть по ситуации.
...
Рейтинг: 0 / 0
Как работает индекс?
    #38698699
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnewsУважаемые знатоки, искал как работает индекс и нашел интересные вещи, для примера если я делаю запрос на два поля то индекс работает по первому запросу а второй запрос работает перебором пропуская индексы даже если существуют индивидуальные. Все пишут что при запросе на два поля нужно делать комбинированный индекс то есть на два поля тогда запрос будет просто летать.
Теперь вопрос если я делаю запрос на три поля а у меня индекс на два будет ли работать комбинированный индекс из двух полей для трех? И нужно ли мне делать индекс на три поля? Или это решается только практическим методом?

Извиняюсь если что-то не внятно сказал, я не волшебник я только учусь.

по сучувсвую...я понял что ты совершенно не понимаешь индексов, и хочешь понять. но это долго расписывать.. ито, это понять будет легко если есть начальное понимание... так что, лучше
возьми пока что себе за правило на индексы смотреть так

1)на одну таблицу может примениться только один индекс(быть может несколько, но применён один)
2)что такое составной индекс.
для простоты - предположим что у нас есть два типа данных. числа в две цифры
00 - 99
и тип данных число в одну цифру 0-9

- тогда индекс на поле первого типа(назовём поле П0) - будет чтото вроде

00-список первичных ключей, где значение этого поля 00
01 -...
....
99

а второй индекс сделаем на два поля П1 и П2 , но они у нас уже второго типа - одноциферное число.

так вот этот индекс получиться тем же самым
00 - список первичных ключей, где П1 =0, п2=0
01 - п1=0 п2=0 список ПК.
...

========
запрос
найти всё где П0=12, приведёт к тому. что прочитаеться первый идекс, найдём список записей где оно 12, и всё.

второй запрос - где П1=1 и П2=3
....в индексе найдём участо 13, и прочитаем список первичных ключей

третий запрос
найти где П1 = 4
это тоже самое что П1=4 И (П2 от 0 до 9)
тоесть найти все записи, где составной индекс имеет значения от 40 до 49

запрос 4
где П0 между 40 и 49
идентично запросу три, только используеться первый индекс

запрос 5

найти где П0 = 1 П1=2 П2 =3
оптимизатор выберет один из индексов и

-либо по индексу найдёт где п0=1, потом их перебёрёт на проверку двух других полей
-либо по индекску найдёт где П1=2 П2 =3, и перебирая записи найдёные, отсеит чтобы выполнялось п0=1
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как работает индекс?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]