powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос о скорости выборки.
7 сообщений из 7, страница 1 из 1
Вопрос о скорости выборки.
    #38803932
scy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
scy
Гость
Суть вопроса:
Известно что при выборке по составному primary ключу(x,y,z) , мы получаем быстрые выборки в случаях если у нас where x=5; x=5 and y=6; x=5 and y=3 and z=6; - во всяком случае из того ,что я прочел.

если выборка where y=4 and z=5 ->то насколько я понимаю, будет полный перебор таблицы.

Вопрос если я сформулирую запрос как: where x like '%' and y=3 and z=5 -> скорость увеличесться?
...
Рейтинг: 0 / 0
Вопрос о скорости выборки.
    #38803978
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scyСуть вопроса:
Известно что при выборке по составному primary ключу(x,y,z) , мы получаем быстрые выборки в случаях если у нас where x=5; x=5 and y=6; x=5 and y=3 and z=6; - во всяком случае из того ,что я прочел.

если выборка where y=4 and z=5 ->то насколько я понимаю, будет полный перебор таблицы.

Вопрос если я сформулирую запрос как: where x like '%' and y=3 and z=5 -> скорость увеличесться?

секция where АДИТИВНАЯ. перестановка порядков не влияет на рузельтат. адна из причин почему появились джоины вместро старого синтаксиса.

субд люая, секцию веар перетасовывает как ей удобно.

расмотрим два случая

первый - поле хуз - число трёхциферное, на него индекс(на одно поле)

второй - три поля х у з , каждое однофиферное.

для индекса эти две ситуации идентичные.

where x like '%' and y =3 and z =5

идентично where xyz like '%35'
...
Рейтинг: 0 / 0
Вопрос о скорости выборки.
    #38803992
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scyесли выборка where y=4 and z=5 ->то насколько я понимаю, будет полный перебор таблицы.Или полный перебор индекса, если других полей в результате не требуется.


scyВопрос если я сформулирую запрос как: where x like '%' and y=3 and z=5 -> скорость увеличесться?Время выполнения запроса немного увеличится за счет затрат процессорного времени на LIKE. Индексного доступа к данным не появится.
...
Рейтинг: 0 / 0
Вопрос о скорости выборки.
    #38804084
scy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
scy
Гость
miksoftscyесли выборка where y=4 and z=5 ->то насколько я понимаю, будет полный перебор таблицы.Или полный перебор индекса, если других полей в результате не требуется.


спасибое именно это и хотел услышать.
...
Рейтинг: 0 / 0
Вопрос о скорости выборки.
    #38804485
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftscyесли выборка where y=4 and z=5 ->то насколько я понимаю, будет полный перебор таблицы.Или полный перебор индекса, если других полей в результате не требуется.


scyВопрос если я сформулирую запрос как: where x like '%' and y=3 and z=5 -> скорость увеличесться?Время выполнения запроса немного увеличится за счет затрат процессорного времени на LIKE. Индексного доступа к данным не появится.

Миксофт - а вот тут я бы хотел уточнить!

1)действительно если я выбираю из таблицы нечто, что можно выбрать лишь на индексе, но индекс применить нельзя - вот как у ТС - индекс=абв а я ищу по полям б и в, и в вывод идут только а б в и возможно ПК(например поле г)

2)как експлейном 100% определить, что скан будет не по таблице а по индексу?
...
Рейтинг: 0 / 0
Вопрос о скорости выборки.
    #38804502
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex5646574987654531)действительно если я выбираю из таблицы нечто, что можно выбрать лишь на индексе, но индекс применить нельзя - вот как у ТС - индекс=абв а я ищу по полям б и в, и в вывод идут только а б в и возможно ПК(например поле г)В этом случае индекс может использоваться как покрывающий. Но может и не использоваться. Это на усмотрение оптимизатора.


alex5646574987654532)как експлейном 100% определить, что скан будет не по таблице а по индексу?Точно не помню, но в колонке индекса должен быть указан индекс, а в колонке REF пусто.
...
Рейтинг: 0 / 0
Вопрос о скорости выборки.
    #38805392
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scyСуть вопроса:
Известно что при выборке по составному primary ключу(x,y,z) , мы получаем быстрые выборки в случаях если у нас where x=5; x=5 and y=6; x=5 and y=3 and z=6; - во всяком случае из того ,что я прочел.


Это не обязательно так. Например, если у тебя в таблице 50% записей будут с x=5, то выборка только по x=5 будет медленной,
а по x=5 and y=6 -- быстрее, и по x=5 and y=3 and z=6 ещё быстрее (при условии, естественно, что доп. условия отфильтровывают всё меньше и меньше записей).

При этом будет или не будет использоваться индекс в случае x=5 -- не важно. Если будет, производительность запроса будет как правило наоборот ниже.

scyесли выборка where y=4 and z=5 ->то насколько я понимаю, будет полный перебор таблицы.


Возможно, не будет использоваться индекс для позиционирования. это -- да. Но индекс может таки использоваться для
сканирования таблицы, и -- да, должны просматриваться все записи (индекса или индекса и таблицы).

scyВопрос если я сформулирую запрос как: where x like '%' and y=3 and z=5 -> скорость увеличесться?


Нет. Потому что по условию x like '%' никакие записи не отфильтровываются.
Индекс по (xyz) не может быть использован для позиционирования по нему для условия x like '%' and y=3 and z=5.
У ведущих колонок (первых в индексе) должня быть указаны конкретные значения или суффиксы значения (для like).
И конечно суммарное условие должно быть селективно (отбирать мало записей).
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос о скорости выборки.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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