sql查询在Hibernate中很慢,在mysql上很快
Posted
技术标签:
【中文标题】sql查询在Hibernate中很慢,在mysql上很快【英文标题】:sql query very slow in Hibernate, fast on mysql 【发布时间】:2017-02-14 14:19:23 【问题描述】:我有一个非常简单的查询来从表中选择所有行。在休眠状态下,它总是需要大约 17-18 秒。我指定,show_sql
是真的。我直接将sql命令复制到mysql,耗时0.00022秒……
这是查询:
SELECT
organizati0_.id AS id1_5_,
organizati0_.adminList AS adminLis2_5_,
organizati0_.demoAccount AS demoAcco3_5_,
organizati0_.disabled AS disabled4_5_,
organizati0_.enduserCredits AS enduserC5_5_,
organizati0_.name AS name6_5_,
organizati0_.pushNotificationRoom AS pushNoti7_5_,
organizati0_.totalLicenses AS totalLic8_5_,
organizati0_.usedLicenses AS usedLice9_5_
FROM
organization organizati0_
这是查询代码:
Session session = ThreadSessionHolder.getThreadSession();
Query query = session.createQuery("from Organization ");
List list = query.list();
return list;
有什么想法吗?这让我发疯了
【问题讨论】:
这更有可能是从服务器检索数据并在此处创建错误的 java 对象。请注意,您正在拉动整个表格 组织实体上有关联吗?难不成他们中的一些人是急切的?记录数是多少? 如果您在 MySql 上进行查询总是会很快,那么当您要求 hibernate 返回整个表时,请考虑每个组织对象的创建。你可以放上你的组织表,看看我们是否可以让它表现得更好,比如如果你有一些关系,你可以把它们设置为惰性,你的组织对象会更轻。 ***.com/questions/6609645/… 我所有的引用都用惰性获取进行了注释。和@JamesJithin,我已经完成了那里的每一个答案...... 【参考方案1】:我发现了问题。
我在构造函数中执行了一个初始化操作,当全选时不应该这样做
【讨论】:
以上是关于sql查询在Hibernate中很慢,在mysql上很快的主要内容,如果未能解决你的问题,请参考以下文章
简单查询在 laravel 中很慢(带有分页)但在 phpmyadmin 中非常快