Первичный ключ не равен нулю снижения производительности - PullRequest
0 голосов
/ 16 января 2019

Разве первичный ключ не равен нулю id != 0 в предложении where снижает производительность запроса?Эта проверка мешает воспользоваться преимуществом index ing?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

, если оно не равно нулю, оно будет соответствовать всем истинным условиям, что id! = 0, использовать объяснение ключевое слово перед запросом ( sql select ключевое слово ), чтобы проверить производительность запроса.если вы хотите сопоставить несколько записей со значением id, используйте ключевое слово IN .

0 голосов
/ 16 января 2019

Не равен ли первичный ключ нулю id! = 0 в предложении where уменьшить запрос производительность

Это происходит так, что вы заканчиваете полным сканированием таблицы.

Не мешает ли эта проверка воспользоваться преимуществами индексации?

Да. Поскольку id != 0 почти всегда будет принимать значение true, в конечном итоге вы получите все данные таблицы.

Чем меньше% результатов, которые вы возвращаете, тем выше вероятность того, что Oracle воспользуется вашим индексом. Ваше состояние возвращает все ваши данные, поэтому оно не использует ваш индекс.

Если вам интересно, можете ли вы улучшить производительность запросов с помощью условия != 0, ответ - вы не можете. Это уже достаточно хорошо. Иногда вам нужно принять полное сканирование таблицы, вы не всегда можете воспользоваться вашим индексом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...