mysql的limit分页优化

当数据量达到几十万时select * from table limit 10可能会达到十几二十秒,查询非常慢,这时候需要进行一个优化。

子查询优化

SELECT
 a.PERSON_ID,
 a.PRIMARY_NAME,
 a.GENDER,
 a.ACTIVE_STATUS,
 a.BIRTH_DATE
FROM
 aml_dev.person0 a
INNER JOIN (SELECT
   PERSON_ID
  FROM
   aml_dev.person0 ORDER BY PERSON_ID LIMIT 10) b
ON b.PERSON_ID = a.PERSON_ID

用子查询的方式,通过索引查出索引数据,在进行一个内连接查出全部数据

单表LIMIT

SELECT
   PERSON_ID,
   PRIMARY_NAME,
   GENDER,
   ACTIVE_STATUS,
   BIRTH_DATE
  FROM
   manual_person
  WHERE
   1 = 1 LIMIT 10)
  UNION
   (
    SELECT
     PERSON_ID,
     PRIMARY_NAME,
     GENDER,
     ACTIVE_STATUS,
     BIRTH_DATE
    FROM
     PERSON0
    LIMIT 10
   )

若在十张表中查询10条数据,则每张表查询一条数据,用union进行联合

经实验,下面比上面速度快一点点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值