SQL-запрос с лимитом 0

Я вижу, что люди пишут SQL-запрос, например,

select count(*) 
from xxx_table 
where yyy='abc' 
limit 0

интересно, что означает здесь предел 0? Направлял некоторые документы и дискуссии и все еще чувствовал себя в замешательстве.

Ответ 1

Я думаю, что это только для разбора запроса.

В простом подходе Шаги выполнения запроса:

  • Разбор запроса
  • Сделать план выполнения (в том числе выбрать лучший индекс для использования).
  • Получить данные с диска.

Ответ 2

Как Документы MySQL:
LIMIT 0 быстро возвращает пустой набор. Это может быть полезно для проверки достоверности запроса. Он также может использоваться для получения типов столбцов результатов, если вы используете API MySQL, который позволяет получать метаданные набора результатов.

Ответ 3

Наконец-то я нашел кое-что знающее, когда я создал демо для вас, используйте ниже упомянутый скрипт, чтобы проверить план выполнения при сравнении с лимитом 0 и 1.

http://sqlfiddle.com/#!9/82a8f0/5

То, что я видел, заключается в том, что при выполнении, если мы используем Limit 0, чем его не принимая во внимание Table.check мой sqlfiddle, упомянутый выше.

Примечание. Я создал только простую таблицу, чтобы проверить разницу в плане исполнения в демонстрации.

Ответ 4

LIMIT Предложение используется в MYSQL, чтобы возвращать никакие строки в выводе то же самое как TOP в разделе SQL SERVER и ROWNUM в ORACLE.

например.

MYSQL: -

SELECT *
FROM Persons
LIMIT 5;

SQL SERVER: -

SELECT TOP 2 * FROM Persons;

ORACLE: -

SELECT *
FROM Persons
WHERE ROWNUM <=5;

Ответ 5

Запуск объяснения перед оператором с и без ограничения 0 дает разные результаты:

с лимитом 0

"1" "SIMPLE"    \N  \N  \N  \N  \N  \N  \N  "Impossible WHERE"

без

"1" "SIMPLE"    "{tableName}"   "index" \N  "{someFoundKey}"    "{keyLength}"   \N  "{rowCount}"    "Using index"

(\n - мой вывод sql gui для нуля)

Вывод - как уже говорили другие, скорость обоснованности кажется хорошей догадкой. Это может быть более очевидно при более сложном запросе с объединениями, объединениями, пересечениями и т.д.