так в этом и загвоздка, что в случае с IN или JOIN скорость выполнения всегда приблизительно одинаковая, какой бы длины строчку в LIKE туда не поставили - около 2сек.
dimonchik2013, так в этом и загвоздка, что в случае с IN или JOIN скорость выполнения всегда приблизительно одинаковая, какой бы длины строчку в LIKE туда не поставили - около 2сек.
а вот EXISTS просто умирает с увеличением LIKE
забыла уточнить - по полю bс.code есть индекс (как и по bc.id_book)
я поэтому и решила переписать с IN на EXISTS, потому что мне по факту важно лишь наличие для bl.id хотя бы одного bc.code по условию LIKE, чтобы вытащить этот bl.id
но я не понимаю, почему время выполнения EXISTS с 0.005сек при LIKE ‘%x%’ увеличивается до 6сек при LIKE ‘%xxxxx%’
Владислав Фурсов, это было первым моим телодвижением в попытках решить этот вопрос
Неважно, какой размер строки для поиска через LIKE, первый запрос по explain перебирает в book_codes порядка 10тыс записей, а второй - порядка 4мл по одному и тому же ключу id_book.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.