JDBC: delete from table_name; 这个sql不清楚数据库是怎么进行解析和执行的,从我多次的测试来看,Oracle似乎内部也是把主键找出来,然后按照主键依次删除(即使没有主键,也有rownum之类的东西),这样来看,其实和Hibernate的删除方式没有本质差别,Hibernate主要差距在PO的同步和多次的网络通讯数据传输上。其实当删除大量数据的时候,主要的瓶颈在数据库的硬盘IO上,所以以上的那些差距影响因素就显得不那么重要了,这也是为什么Hibernate批量删除速度有可能接近JDBC的原因。
case 1 delete from tab where id = 1 delete from tab where id = 2 delete from tab where id = 3 delete from tab where id = 4 delete from tab where id = 5 ... delete from tab where id = 10000