Java 通过Hibernate为外键使用MySQL索引

Java 通过Hibernate为外键使用MySQL索引,java,mysql,hibernate,foreign-keys,indexing,Java,Mysql,Hibernate,Foreign Keys,Indexing,我们当前的数据库(MySQL)已经有了外键索引,因为它们使用InnoDB,而InnoDB(afaik)会自动为外键生成索引。Hibernate不用于创建这些表。所以我的问题是:当我使用Hibernate从MySQL的表中获取数据时,MySQL是否会自动为它们的外键使用索引?还是必须配置Hibernate才能使用这些索引 谢谢,, ymene是的,查询优化器决定使用或不使用索引。对SELECT语句使用EXPLAIN查看它使用了什么。由Hibernate创建的查询与硬编码查询没有区别 当我使用Hib

我们当前的数据库(MySQL)已经有了外键索引,因为它们使用InnoDB,而InnoDB(afaik)会自动为外键生成索引。Hibernate不用于创建这些表。所以我的问题是:当我使用Hibernate从MySQL的表中获取数据时,MySQL是否会自动为它们的外键使用索引?还是必须配置Hibernate才能使用这些索引

谢谢,,
ymene

是的,查询优化器决定使用不使用索引。对SELECT语句使用EXPLAIN查看它使用了什么。由Hibernate创建的查询与硬编码查询没有区别

当我使用Hibernate从MySQL的表中获取数据时,MySQL是否会自动为它们的外键使用索引?还是必须配置Hibernate才能使用这些索引

在Hibernate中没有任何配置可以使SQL后端使用索引进行连接。让Hibernate执行它的查询,如果优化器决定使用索引是合适的,它将使用它


PS:我这里不是在谈论索引提示语法,看,这是不同的。

谢谢。以前不知道解释,有用的提示!我已经猜到,查询优化器会很小心,只是不确定,因为在php管理统计数据中,索引的使用似乎太少,所以我猜错误出在其他地方。谢谢你的回答!