小弟现在是要做一个这样的事情,一个日志的查询系统。这个日志要从4个表中查出来,每个表有几十万条数据(以后可能增长到几百万条)。 我现在用的是最平常的子查询,可是java中出报出内存溢出的异常(偶尔能查询出来,不过那速度真的忍受不了),我就想问问各位大侠你们怎么处理这样的大数据量,而且有复杂的关联关系的查询啊?
问题表述不清,还请各位多多包涵。
查询一个机构下所有账户的所有日志。。。。这肯定溢出啊。 。
基本大型应用里不能取查 ‘所有’ 的
你要给个条件限制,或者做分页,
仔细再分析一下业务场景吧,需要变通一下
对关键字段做索引。
如果数据有规律,可以分到多个表中。
在查询的条件语句里,第一步将最多的干扰项排除。
比如要查询人。
条件:男,20~39岁,已婚
那第一个条件用“男”将一般的干扰项排除,第二个条件我建议是“已婚”,第三个是年龄。
还有就是不同字段筛选速度不一样,字符串和数字的速度差别就很大。
好像具体的数据库要具体对待吧。
把SQL发上来看看哈~
你报内存溢出不是因为查询慢的原因吧,应该是结果集过大导致。这个与查询效率无关的吧