Запросы, которые не выбирают столбцы таблицы - правильно ли я понимаю? - PullRequest
1 голос
/ 11 октября 2011

Я только что прочитал эту статью:

http://use -the-index-luke.com / SQL / кластеризация / индекс только сканирование покрывающих-индекс

А внизу это утверждение:

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

Можете ли вы вспомнить содержательный пример?

Проблема в том, что нет комментариев, поэтому я просто хочу проверить, это один из примеров, верно?

SELECT 1 FROM `table_name` WHERE `indexed_column` = ?

Это проверка того, существует ли указанная строка.

Итак, вопросы:

  • Есть ли еще практические применения для этого?
  • В качестве примечания я где-то читал, что приведенный выше запрос может быть более производительным, если инкапсулирован в EXISTS, я не уверен, как проверить, если это правда:

    SELECT EXISTS(SELECT 1 FROM `table_name` WHERE `indexed_column` = ? LIMIT 1)
    

    Это?

1 Ответ

1 голос
/ 11 октября 2011

Что ж, возможно, каноническим примером будет select count(*) from mytable для получения количества строк.

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

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