直接操作数据库好,还是将数据库内容取出来放在集合里,对集合进行操作好?
2014-06-15
展开全部
我暂且把你说的集合理解为 链表,数组,map之类的集合容器。
如果是这样的话,你的问题就是说,where语句的范围扩大,从库中取出一个集合,然后再对集合进行进一步的代码筛选,选出符合的。 首先,如果数据库语句能选出结果,那么就用数据库选这是最好的,因为现在的数据库主流都是关系型,最大的好处就是查找时算法效率都是很高的,这就是说,用语句筛选直接取出结果等于让数据库帮你进行那些‘集合操作’,而数据库对这些‘集合操作’效率是最高的,所以你理应交给数据库来做。那是不是说如果你的筛选也用了hashmap,index,二分查找这些,实现最高效率, 就能达到sql语句直接出结果的效率了呢?也不是的,数据库的瓶颈其实是IO,读一个集合的数据出来,传输是十分费时的。最好的效率,原则上就是,尽量减少数据库读写次数(一次读很多条,那个就是读了很多次,次数按记录条数来说的)。
以上全属手打,或许会有些许不专业。望采纳。
如果是这样的话,你的问题就是说,where语句的范围扩大,从库中取出一个集合,然后再对集合进行进一步的代码筛选,选出符合的。 首先,如果数据库语句能选出结果,那么就用数据库选这是最好的,因为现在的数据库主流都是关系型,最大的好处就是查找时算法效率都是很高的,这就是说,用语句筛选直接取出结果等于让数据库帮你进行那些‘集合操作’,而数据库对这些‘集合操作’效率是最高的,所以你理应交给数据库来做。那是不是说如果你的筛选也用了hashmap,index,二分查找这些,实现最高效率, 就能达到sql语句直接出结果的效率了呢?也不是的,数据库的瓶颈其实是IO,读一个集合的数据出来,传输是十分费时的。最好的效率,原则上就是,尽量减少数据库读写次数(一次读很多条,那个就是读了很多次,次数按记录条数来说的)。
以上全属手打,或许会有些许不专业。望采纳。
美林数据技术股份有限公司
2023-07-25 广告
2023-07-25 广告
常用的大数据工具有以下这些:* Apache Cassandra:一种分布式的开源数据库。* Apache Drill:一种开源分布式系统,用于大规模数据集的交互分析。* Apache Elasticsearch:是Apache Lucen...
点击进入详情页
本回答由美林数据技术股份有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询