通常在大数据指300w以上的书单表数据时候,多表联合查询的效率比较低,根据卡迪尔积知道
复杂度等于n^表数,
但是如果查在构建索引的情况下,可以少走很多扫描行数,但是如果是数据区分度小的列
这时候索引的作用就很小 如对于状态 是否 这样的字段,获取出来的数据都是大几百万的
如果这时候采用in查询,代码层进行连接,那么内存将会被耗尽,这时候我们就不得不辛苦
我们的数据库做相应的聚合部分啦,如采用子查询,把相应的条件查出来,但是有一点,子查询
跟外部查询都可以走索引,可是是相当于两个查询,并且综合复杂度为走完索引后的n*m
卡迪尔积减少了,复杂度不变,另外一种方式就是对于作为高频查询条件的数据,采用数据冗余
的方式,把相应的列控制到该表,作代码级别的数据管理,等查询的时候,再走索引优化