10
回答
hibernate select limit(0,10000) 越来越慢
华为云实践训练营,热门技术免费实践!>>>   

hibernate select limit(0,10000) 越来越慢:

每查询1w条删除它,然后在从0,10000查询出来删除,越查越慢。是在一个事物中。

举报
共有10个答案 最后回答: 6年前

spring 事物配置在service层,有没有什么方法能手动提交事物,在方法没执行完成的时候。

--- 共有 2 条评论 ---
虫☌☌☌兒☌你的意思是,让我单独写个,jdbc连接数据库删除吗? 6年前 回复
红薯你是为了删数据,就别考虑那么多设计模式的东西了:) 6年前 回复

有毛病啦,不要的数据,还查个什么劲?

直接写 delete 语句,带上你的 where 条件不就完了,非得用 hibernate 去 find 或者 get 一个 object 回来,再用 object 对象,执行 delete ?

完全就是 hibernate API 使用给你带来的思维上的误区。

引用来自“高少爷”的答案

有毛病啦,不要的数据,还查个什么劲?

直接写 delete 语句,带上你的 where 条件不就完了,非得用 hibernate 去 find 或者 get 一个 object 回来,再用 object 对象,执行 delete ?

完全就是 hibernate API 使用给你带来的思维上的误区。

删除的这部分数据,是要保存到另外一张表的。

引用来自“虫☌☌☌兒☌”的答案

引用来自“高少爷”的答案

有毛病啦,不要的数据,还查个什么劲?

直接写 delete 语句,带上你的 where 条件不就完了,非得用 hibernate 去 find 或者 get 一个 object 回来,再用 object 对象,执行 delete ?

完全就是 hibernate API 使用给你带来的思维上的误区。

删除的这部分数据,是要保存到另外一张表的。
可以使用insert into table1(id,name) select id,name from table2语句啊,插入完毕之后,把原来的表不要的数据清理掉。

因为业务需要,必须得先查出来,做些处理然后转移,删除。能不能说一下造成limit 0,10000 越查越慢的原因呢,我是这么想的,可能是10000条查出来然后删除,由于事物没提交在从0条开始查10000条时其实是从10000条开始查limit(10000,10000)这样的话就越查越慢了,但是事物怎么手动提交用不知道怎么解决,spring配置事物在service层,只有当service走完才会提交事物,我想在service没走完时提交可能就行了。!!!!!不知道怎么提交

用 Hibnerate 查出来再删,肯定慢,Hibernate查出来的数据首先要填充到model中去滴。还不如直接用sql,一般插入一边删除。
顶部