【发布时间】:2015-10-04 08:54:18
【问题描述】:
我对整数和字符串鉴别器类型之间的性能差异有疑问。 我正在使用 Joined 策略,即:
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "DTYPE", discriminatorType = DiscriminatorType.STRING)
public abstract class SuperClass
我有一些子类正在扩展这个超类。
哪个性能更好? DiscriminatorType.INTEGER 或 DiscriminatorType.STRING?
我们的提供商是 eclipselink,我们正在处理大量数据。
提前致谢。
【问题讨论】:
-
“大规模”到底是什么意思。
-
性能取决于数据库类型、索引类型、索引大小。也许这篇文章会对你有所帮助:https://weblogs.java.net/blog/caroljmcdonald/archive/2009/08/28/jpa-performance-dont-ignore-database-0。无论如何,尝试使用 String 和 Integer 两种类型运行基准测试。
-
谢谢安德烈。我做了一个基准测试,没有发现任何重大差异。当然这是一个测试环境,当然在生产环境中条件会有所不同。据我了解,eclipselink 将生成查询,其中它将鉴别器列与鉴别器值进行比较。所以唯一的性能问题是通过数字或字符串进行比较。在 Oracle 和索引中,我认为没有什么大的区别。是吗?
标签: java performance jpa orm eclipselink