对于数据库取数据的几种方式对比

1.一次从数据库读取到内存中,然后断开连接。每次读取都从内存中读取。如果我是驱动设计者肯定不会这么设计,很显然这样的读取不能够支持大数据量,如果数据有几百万条,一次性读取到内存中,不要说每次读取的数度会很慢,而且内存也放不下。当然这种做法在取数据的时候会比较快,但是太不实用了。显然不能这么设计。
2.每次next的时候都去数据库取数据,去玩后断开连接,等到下一次next再打开链接取。这种做法明显也不行,每次next操作都要打开关闭数据库,如果有大量的读取数据库操作,那样完了,cpu处理不过来。
3.读取数据时跟数据库建立一个固定链接,每次next读取数据,但是不关闭数据库连接,等到数据全部去玩再关闭连接,这种方式显然比上面两种要好。但是仍然存在瓶颈,每次去数据库读取,就要在数据库中多做操作同样影响速度。
4.大致与上一个一样,只是在第一次next的时候同时向后读取若干数据到内存中,以后每次next到内存中取,不去数据库中去,直到内存中取完再去数据库中取若干数据,这样又更好了,提高了操作速度也节约内存资源。
5.在next的时候并不读取任何数据,只是做一个标记,然后等next完成,一次性把标记项传给数据库操作对象,一次性读取出来然后关闭。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,048评论 2 89
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,206评论 6 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 【给我一点时间,再给我一点时间!】 【放弃我吧,别这样。】 冰冷的雪夜,寒风中少年抱着少女不顾一切的狂奔。泪水结成...
    肉球家的猫萝莉阅读 165评论 0 0
  • 用Chrome调试web页面 1、下断点(breakpoints) 2、最右边分析:Call stack:调用堆栈...
    壹个正经人阅读 290评论 0 0