我有一个 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/