Важно понимать, что SQL является декларативным языком, а не императивным. Вы описываете, какие условия вы хотите, чтобы ваши данные соответствовали, а не как эти сравнения должны быть выполнены. Задача базы данных - найти самый быстрый способ дать вам ответ (задача, принятая оптимизатором запросов ). Это означает, что, казалось бы, небольшое изменение в вашем запросе может привести к совершенно другому плану запроса, что, в свою очередь, приведет к совершенно другому поведению во время выполнения.
Сравнение =
можно преобразовать и оптимизировать так же, как и простое объединение двух полей. Это означает, что нормальные индексы могут использоваться для очень быстрого выполнения запроса, возможно, без чтения фактических данных и использования вместо них только индексов.
A <>
Сравнение, с другой стороны, требует полного декартового произведения , которое обычно рассчитывается и проверяется для условия (может быть способ оптимизировать это с правильным индексом, но обычно Индекс здесь не поможет). Он также обычно возвращает намного больше результатов, что увеличивает время выполнения.