举例如下sql,假如portal_product数据量超大,这样连接查询
um_user_info:2W条;
portal_product:100W条;
笛卡尔积:2W*100W
SELECT
pp.id,
pp.cover,
uui.user_id userId,
uui.user_name userName
FROM portal_product pp,um_user_info uui
WHERE pp.user_id = uui.user_id
调整过后,提前减少入口数据量:
笛卡尔积:100*2W;效率大大提高
SELECT
pp.id,
pp.cover,
uui.user_id userId,
uui.user_name userName
FROM
(select * FROM portal_product where XXX limit 0,100) pp
,um_user_info uui
WHERE pp.user_id = uui.user_id
减少入口数据量优点:
1、提高查询效率(很多效率低,可能就是各个表数据量太大,关联查询主键之外的字段慢得就很明显);
2、限定指定数据量范围内分页查询,防止被抓取全部数据(题外话,根据实际功能而定);
欢迎欣赏实战:百搭屋