当数据量达到几十万时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进行联合
经实验,下面比上面速度快一点点