首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含大量列的MySQL JPA查询的运行速度比预期慢得多。

包含大量列的MySQL JPA查询的运行速度比预期慢得多。
EN

Stack Overflow用户
提问于 2019-01-14 17:57:39
回答 1查看 216关注 0票数 1

当我通过JPA执行查询时,它的运行速度很慢,普通的mysql调用需要大约0.05秒,而通过JPA需要3秒,我不明白为什么。记录器显示,它有一个很长的ObjectBuildingTime:

代码语言:javascript
复制
    number of objects=953,
total time=2673045667,
local time=2673045667,
profiling time=1273000,
Timer:Logging=616666,
Timer:ObjectBuilding=2317873662,
Timer:SqlPrepare=16289334,
Timer:Register=149633998,
Timer:StatementExecute=82975667,
Timer:Caching=82966350,
Timer:RowFetch=223775000,
time/object=2804874,

这意味着什么,我如何才能加快速度?我的查询如下所示:

代码语言:javascript
复制
SELECT * FROM TESTENTITY t0, INNERTESTENTITY t1 WHERE (((t0.TIMESTAMPCREATION BETWEEN ? AND ?) AND (t0.DATA_TYPE IS NOT NULL)) AND ((t1.ID = t0.ID)))

Innertestentity有许多属性(~40)和两个指向其他较小对象的ForeignKeys。它是来自Testentity的映射超类。这会是原因吗?提前感谢您的帮助。

编辑:我的实体看起来像

代码语言:javascript
复制
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "DATA_TYPE")
public class TestEntity{
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
    @JoinColumn(name = "Employee_ID")
    private EmployeeEntity employeeEntity;

代码语言:javascript
复制
@Entity
@MappedSuperclass
@DiscriminatorValue("SURVEYDATA")
public class innertestEntity extents TestEntity{
    private List<Integer> counts;
    @ElementCollection
    @MapKeyColumn(name = "statename")
    @Column(name = "value")
    @CollectionTable(name = "states")
    private List<Integer> states;
    private List<String> namelist;
EN

回答 1

Stack Overflow用户

发布于 2019-01-15 04:57:02

尝试在日志中打开SQL query tells,看看它是否在您的application.properties中告诉您一些有趣的事情:

代码语言:javascript
复制
org.hibernate.SQL=DEBUG

你也可以在你的MySQL配置文件(可能是/etc/my.cnf )中打开MySQL的慢查询日志,它也可能是有用的:

代码语言:javascript
复制
slow-query-log                  = 1
slow-query-log-file             = /var/lib/mysql/mysql-slow.log

我怀疑问题可能是加载了一些其他对象(如EmployeeEntity) (如果您的代码正在访问这些字段,则可能会出现这种情况)。在这些日志和您的代码之间,我想您会看到是否有更多的东西正在被访问和加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54179165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档