Mar*_*rcG 2 mysql sql database-performance database-indexes
假设有一个“系列值”的 SQL 数据库。每个都Value属于 a Series,并且有一个日期:
@Entity
class Series { … }
Value {
Series series;
Date date;
…
}
Run Code Online (Sandbox Code Playgroud)
对于系列和日期的每个组合,每个值都是唯一的,由该索引保证:
UkSeries UNIQUE INDEX value (series ASC, data ASC)
Run Code Online (Sandbox Code Playgroud)
在Hibernate中,上面的索引就是通过这个注解创建的:
@Table (
uniqueConstraints = @UniqueConstraint (columnNames = {"series", "data"}))
Run Code Online (Sandbox Code Playgroud)
现在,请将它与这个可能的替代索引定义进行比较:
UkSeries UNIQUE INDEX value (series ASC, data ASC)
IdxSeries INDEX value (series ASC, data ASC)
@Table (
uniqueConstraints = @UniqueConstraint (columnNames = {"series", "data"}),
indexes = { @Index (name = "IdxSeries", columnList = "series, data") })
Run Code Online (Sandbox Code Playgroud)
考虑到我还想加快在数据库中搜索值的速度,我的问题是:
除了保证唯一性之外,单独的“UNIQUE INDEX”是否也可以用于加快搜索速度?还是我真的需要这两个索引,如上面我的替代索引定义中所示?
注意:我使用的是 MySQL,但我相信这个问题很简单,所以我的特定数据库并不重要。
| 归档时间: |
|
| 查看次数: |
885 次 |
| 最近记录: |