大体现在:
1、要查询的表的数据量很大;
2、要返回的结果的数据量很大;
复杂体现在:
1、要关联多个大数据量表的数据进行查询
2、查询条件也很复杂。
例如:
天翼阅读 有一个 用户画像组的功能。
要求根据用户的行为,将用户筛选到不同的用户组。
用户表:大约1000万数据
用户订购消费数据:可能上亿数据
用户登陆情况数据:也可能上亿数据
用户阅读电子书量数据:可能上亿
用户阅读电子书内容数据:上亿
要统计上述用户行为3个月内的数据,比如消费数据订购量大于30,小于50,消费金额大鱼100,小于300,等等。此种情况该怎么实现查询呢?
可以采用分表查询,并且将结果直接写入到一个临时表里。
比如:先统计 3 个月内消费数据订单量大于30,小于50的用户放到导一个临时表,其它条件查询结果的用户也放到一个临时表里,最后在关联这些临时表表得到最终的结果。
最后在存储过程里直接把结果入库。