Я только что прочитал эту статью:
http://use -the-index-luke.com / SQL / кластеризация / индекс только сканирование покрывающих-индекс
А внизу это утверждение:
Запросы, которые не выбирают столбцы таблицы, часто выполняются как сканирование только по индексу. Можете ли вы вспомнить содержательный пример?
Запросы, которые не выбирают столбцы таблицы, часто выполняются как сканирование только по индексу.
Можете ли вы вспомнить содержательный пример?
Проблема в том, что нет комментариев, поэтому я просто хочу проверить, это один из примеров, верно?
SELECT 1 FROM `table_name` WHERE `indexed_column` = ?
Это проверка того, существует ли указанная строка.
Итак, вопросы:
В качестве примечания я где-то читал, что приведенный выше запрос может быть более производительным, если инкапсулирован в EXISTS, я не уверен, как проверить, если это правда:
EXISTS
SELECT EXISTS(SELECT 1 FROM `table_name` WHERE `indexed_column` = ? LIMIT 1)
Это?
Что ж, возможно, каноническим примером будет select count(*) from mytable для получения количества строк.
select count(*) from mytable
Это не выбирает данные из таблицы и, скорее всего, будет удовлетворено индексом первичного ключа, если он доступен.