SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#26 11.11.2012 13:37:16

Roin
Участник
Зарегистрирован: 27.06.2012
Сообщений: 17

Re: Поиск ближайшего значения к заданному

И хотел спросить, что представляет поиск границы по индексу ?

Неактивен

 

#27 11.11.2012 14:33:19

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Поиск ближайшего значения к заданному

Roin написал:

А граница диапазона точно будет искаться по индексу ? или мускул может юзать его а может и не юзать ?

Как и в любом другом случае mysql исходя из статистики индекса определяет целесообразность его использования. Нужно смотреть explain.
В данном случае, как мы видели ранее (результат выполнения explain) будет.

Неактивен

 

#28 11.11.2012 14:41:11

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Поиск ближайшего значения к заданному

Roin написал:

И хотел спросить, что представляет поиск границы по индексу ?

Имхо, то же что и поиск фиксированного значения.
С той лишь разницей, что при отсутствии точного совпадения будет отдан не пустой результат, а то что слева или справа в зависимости от условия.
В данном случае, если есть точное совпадение с заданной в запросе границей диапазона, то его и отдаем, если нет, то идем вниз по индексу и отдаем первое значение. Поиск завершен.

Неактивен

 

#29 11.11.2012 14:56:27

Roin
Участник
Зарегистрирован: 27.06.2012
Сообщений: 17

Re: Поиск ближайшего значения к заданному

vasya написал:

Roin написал:

А граница диапазона точно будет искаться по индексу ? или мускул может юзать его а может и не юзать ?

Как и в любом другом случае mysql исходя из статистики индекса определяет целесообразность его использования. Нужно смотреть explain.
В данном случае, как мы видели ранее (результат выполнения explain) будет.

Меня смущает то, что даже Вы предполагаете что мускул вполне себе может не использовать индекс.
Смотреть експлейн всех вариантов запроса я несмогу, 4млрд ип я небуду же все варианты смотреть план выполнения.

Меня все таки очень волнует точный вопрос не столь как ищется диапазон по индексу, или как идет сортировка.
Если оценивать данный запрос только в чтениях с диска - какова вероятность того что чтений с диска будет более ну скажем 20ти ? Или это опять даже предположить нельзя ? Просто мой метод дает четкие чтения с диска, а в случае с мускулом я не знаю сколько будет чтений - то ли несколько десятков то ли несколько тысяч - как мускул посчитает оптимальным так и будет. Это не дело.

Неактивен

 

#30 11.11.2012 15:43:32

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Поиск ближайшего значения к заданному

Roin написал:

Меня смущает то, что даже Вы предполагаете что мускул вполне себе может не использовать индекс.
Смотреть експлейн всех вариантов запроса я несмогу, 4млрд ип я небуду же все варианты смотреть план выполнения.

Это был общий ответ (под другим случаем я подразумевал не другое значение ip, а принципиально иной запрос). Достаточно посмотреть explain для одного произвольного значения ip.


Roin написал:

Меня все таки очень волнует точный вопрос не столь как ищется диапазон по индексу, или как идет сортировка.
Если оценивать данный запрос только в чтениях с диска - какова вероятность того что чтений с диска будет более ну скажем 20ти ? Или это опять даже предположить нельзя ? Просто мой метод дает четкие чтения с диска, а в случае с мускулом я не знаю сколько будет чтений - то ли несколько десятков то ли несколько тысяч - как мускул посчитает оптимальным так и будет. Это не дело.

Поиск по дереву это O(ln(n))

Неактивен

 

#31 11.11.2012 16:21:33

Roin
Участник
Зарегистрирован: 27.06.2012
Сообщений: 17

Re: Поиск ближайшего значения к заданному

vasya написал:

Roin написал:

Меня смущает то, что даже Вы предполагаете что мускул вполне себе может не использовать индекс.
Смотреть експлейн всех вариантов запроса я несмогу, 4млрд ип я небуду же все варианты смотреть план выполнения.

Это был общий ответ (под другим случаем я подразумевал не другое значение ip, а принципиально иной запрос). Достаточно посмотреть explain для одного произвольного значения ip.


Roin написал:

Меня все таки очень волнует точный вопрос не столь как ищется диапазон по индексу, или как идет сортировка.
Если оценивать данный запрос только в чтениях с диска - какова вероятность того что чтений с диска будет более ну скажем 20ти ? Или это опять даже предположить нельзя ? Просто мой метод дает четкие чтения с диска, а в случае с мускулом я не знаю сколько будет чтений - то ли несколько десятков то ли несколько тысяч - как мускул посчитает оптимальным так и будет. Это не дело.

Поиск по дереву это O(ln(n))

Т.е при 160к записей по диску будет где то 12 чтений в любом случае для такого запроса ? если не учитывать О.

Неактивен

 

#32 11.11.2012 16:46:42

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Поиск ближайшего значения к заданному

Что-то я не понял смысла вашего последнего сообщения. Что значит "12 чтений в любом случае"? Искомое значение может быть обнаружено и на первом шаге.

Неактивен

 

#33 11.11.2012 16:58:20

Roin
Участник
Зарегистрирован: 27.06.2012
Сообщений: 17

Re: Поиск ближайшего значения к заданному

vasya написал:

Что-то я не понял смысла вашего последнего сообщения. Что значит "12 чтений в любом случае"? Искомое значение может быть обнаружено и на первом шаге.

Да я сам не представляю как происходит выполнение этого запроса sad
Мне охото понять, но пока не понимаю sad
Хотя бы понять сколько возможно минимально чтений с диска а сколько масимально

Неактивен

 

#34 11.11.2012 18:17:48

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Поиск ближайшего значения к заданному

Roin написал:

Да я сам не представляю как происходит выполнение этого запроса sad

Если есть точное совпадение с заданной в запросе границей диапазона, то его и отдаем, если нет, то идем вниз по индексу и отдаем первое значение. Поиск завершен.

Roin написал:

Хотя бы понять сколько возможно минимально чтений с диска а сколько масимально

Значение может быть найдено на первом шаге, а может потребоваться и ln(n). Почитайте как устроен индекс b-tree.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson