Используя MySQL Index для внешних ключей с В спящем режиме

Наша текущая база данных (MySQL) уже имеет Индексы для своих внешних ключей, так как они используют InnoDB, который (afaik) автоматически генерирует IndexTables для внешних ключей. Будьте в спящем режиме не использовался для составления этих таблиц. Таким образом, мой вопрос: MySQL использует Индексы для их внешних ключей автоматически, когда я использую, в спящем режиме для выборки Данных из его таблиц? Или я должен настроить, в спящем режиме для использования этих Индексов?

Спасибо, ymene

1
задан crusam 13 August 2010 в 08:38
поделиться

2 ответа

Да, оптимизатор запросов решает, использовать или не использовать индекс. Используйте EXPLAIN в операторах SELECT, чтобы увидеть, что он использует. Нет никакой разницы между запросом, созданным Hibernate, и жестко закодированным запросом.

1
ответ дан 2 September 2019 в 22:11
поделиться

Использует ли MySQL индексы для своих внешних ключей автоматически, когда я использую Hibernate для получения данных из своих таблиц? Или мне нужно настроить Hibernate на использование этих индексов?

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

PS: Я не говорю здесь о синтаксисе индексных подсказок, см. HHH-2736 - поддержка нативных/SQL подсказок запросов в HQL/Criteria (например, подсказки Oracle SELECT), это нечто другое.

1
ответ дан 2 September 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: