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 中非常快

大家使用hibernate有没有碰到对于频繁的数据插入后p频繁查询速度很慢的问题..? 我现在使用mysql数据库

MySQL 查询在 WHERE 语句中使用 OR 很慢

mysql 查询的时候加了索引 查询还是很慢怎么办

mysql做查询时,第一次很慢,第二三次就会很快?

hibernate SQL查询COUNT函数