Я задавался вопросом, почему мы используемMysql, где столбец = идентификатор против где столбец (ид)
where column=id
против
where column in (id)
Я знаю, что первый будет работать только один идентификатор в то время как второй позволит несколько идентификаторов, однако почему мы не всегда используем даже для одного поиска столбцов?
Другими словами, почему мы не всегда используем «where column in (id)»?
Бенчмарк это! Мне было бы интересно узнать, есть ли разница в производительности. –
Я предполагаю, что это из-за соображений производительности. Представьте себе: вам дается «Я хочу этот идентификатор». Двигатель проходит через каждую строку и проверяет, совпадает ли идентификатор. Теперь представьте себе то же самое для списка предметов. Для каждой строки нужно перебирать список и спрашивать: «Это один из них»? И даже если там есть только один из них, ему все равно нужно перебирать «один». – ATaylor
У меня фактически есть база данных api, которая всегда использует 'IN (value)' в своей функции getRecord - до сих пор с ней не было никаких проблем. Мое предположение: mysql будет оптимизировать его до '=' в какой-то момент – Vatev