java - 即使我用@Column(unique=true) 标记,也需要放置@Index 吗?

标签 java sql mysql hibernate jpa

即使我用@Column(unique=true) 标记,也需要放置@Index 吗?

我有一个将经常用于检索实体的属性,并希望将其作为数据库的索引列。所以这个属性已经标上了@Column(unique=true),还需要加@Index吗?

谢谢

最佳答案

大多数数据库确实使用 UNIQUE INDEX 实现了 UNIQUE 约束,但它们不是必需的,UNIQUE 约束不一定给出你索引的好处。理论上,查询规划器不会考虑约束,而会考虑索引。

也就是说,在 MySQL 的特殊情况下,似乎是 a UNIQUE constraint and a UNIQUE INDEX are "synonymous" .

但是您应该通过检查查询计划来确认这一点。

关于java - 即使我用@Column(unique=true) 标记,也需要放置@Index 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4019741/

相关文章:

sql - 如何在 SQL Server 中获取具有最小订单组和特殊名称的每个组中的行

MySql 左连接多表查询

java - 从接口(interface)调用一些方法,而不覆盖JAVA中的所有方法

java - 将一个 JTextArea 替换为另一个 JTextArea

java - 如何创建新的 "circle"datepicker android 对话框

sql - 合并 2 个查询的结果,其中连接列可能在任一表中缺少数据

java - 当我在手机上测试 Android 应用程序时,AP 太多

sql - 为什么 Postgresql 搜索 Text 索引比 Int 索引快?

php - 如何使用当前信息创建 mysql View

mysql - 我如何从单个查询中的四个不同表中获取总数