传统:找到每个标签对应的所有行,将所有行进行交集,输出结果。
问题:当行数非常多的时候,内存开销极大。
希望:维持低内存占用,可以加长访客查询等待时间,如此做法是否可行?
想法:
1. 假设用户查询 A B C 三个标签,每个标签各有 200W 100W 50W 行结果。
2. 从结果最少的 C 标签取 1W 行。
3. 将1万行的ID分别带入AB对应索引进行查询,若行中ABC标签均存在则保留。
4. 计算是否满足分页所需数量(如100条),若不满足则输出当前已有结果,继续查找。
5. 可在查询到部分行数后实时输出,此处过程用前端AJAX交互并计入URL参数效果最佳。
土鳖老旧写法,不适用于AI、大数据等牛逼的现代化数据计算方式。
建议:为了访客体验和最佳性能,最好还是不用多标签交集查询。