以下这个场景,@Transactional事务也是无效的
public class TransactionTest{ public void A(){ //插入一条数据 //调用方法B (当地的类调用,事务失效了) B(); } @Transactional public void B(){ //插入数据 }}1.3.3 异常被try...catch吃了,导致事务失效。
limit大分页是一个非常经典的SQL问题,我们一般有这3种对应的解决方案 方案一: 如果id是一连的,可以如许,返回上次查询的最大记载(偏移量),再往下limit
select id,name from employee where id>1000000 limit 10.方案二: 在业务答应的情况下限制页数:
建议跟业务讨论,有没有必要查这么后的分页啦。由于绝大多数用户都不会往后翻太多页。谷歌搜索页也是限制了页数,因此不存在limit大分页问题。 方案三: 利用延迟关联或者子查询优化超多分页场景。(先快速定位需要获取的id段,然后再关联)
SELECT a.* FROM employee a, (select id from employee where 条件 LIMIT 1000000,10 ) b where a.id=b.id1.7.2 修改、查询数据量多时,考虑分批进行。