mysql - hibernate 查询比数据库上的 native 查询慢得多

标签 mysql hibernate time

我有一个 Mysql 数据库和一个简单的查询,当通过 Eclipse 中的 hibernate 查询编辑器执行查询和直接在 mysql 中执行相同的查询时,我注意到查询时间有所不同,该表有 60524 个条目(行)

hibernate 查询是

from AppLog a

需要 3.4 秒

hibernate是这样构造原生sql的

select
  applog0_.ID_APP_LOG as ID1_706_,
  applog0_.ID_APP_MODULE_EVENT as ID5_706_,
  applog0_.DATE_INSERT as DATE2_706_,
  applog0_.DESCRIPTION as DESCRIPT3_706_,
  applog0_.ID_PERSON as ID6_706_,
  applog0_.VERSION as VERSION706_ 
 from
  APP_LOG applog0_

当我直接在 mysql 上运行它需要 139 毫秒

差异巨大……诀窍在哪里?

最佳答案

我的猜测是,读取数据花费相同的时间,并在 mysql 提示符中显示它,几乎不需要任何时间,但是从 mysql 到 Eclipse 处理 60k 行需要更长的时间,并且谨慎地负责额外的3.3 秒。使用 mysql 分析,您可以更深入地了解时代的发展,http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html

关于mysql - hibernate 查询比数据库上的 native 查询慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7007319/

相关文章:

java - 如何使用带有 hibernate 注解的 Map

android - DatePicker 的 setMinDate(...) 在第二次调用时不起作用

python - 如何在Python中知道日期格式的数据帧是否包含在时间间隔内(矢量化)

Laravel 5 中的 mysql_query

mysql - SQL错误(1242): Subquery returns more than 1 row - Not fixable with (IN) or a JOIN (I think?)

mysql - 从mysql获取最新记录

PHP MySQL 图像表

java - hibernate 和 postgres 中生成的 @Id 的数据类型是什么?

java - Hibernate 5 插入后更新

mysql - mysql中两个特定时间之间的数据出现错误