众所周知,java在处理大量数据时,将其加载到内存中必然会导致内存溢出。在一些数据处理中,我们要处理海量数据。在数据处理中,我们常用的手段有分解、压缩、并行、临时文件等等。比如我们想把数据库(不管是什么数据库)的数据导出到一个文件中,这个文件通常是Excel或者文本格式的CSV对于Excel来说,对于POI和JXL的接口,你往往没有办法控制内存什么时候写到磁盘上,这很恶心,而且这些API在内存中构造的对象大小会比数据原来的大小大很多倍,所以你要拆分Excel。好在POI开始意识到这个问题,在3.8.4版本之后开始提供缓存线的数量。提供了SXSSFWorkbook的接口,可以设置内存中的行数,但是很遗憾,当你超过这个数的时候,它会在你每增加一行的时候,把相对行数之前的那一行写到磁盘(如果你设置了2000行,当你写第20001行的时候,他会把第一行写到磁盘)。其实这个时候他会保存临时文件以免消耗内存,但是你会发现
5、学 数据库以后可以做什么?是那个只会写代码的码农;学数据库学得好,基本可以谋生;在此基础上,学好操作系统和计算机网络,你就能成为一名优秀的程序员。如果能把离散数学、数字电路、架构、数据结构/算法、编译原理做透,再加上丰富的实践经验和特定领域的知识,也算是一个优秀的工程师。电脑其实就是存储/IO/CPU三块;而计算就是两件事:数据和算法(状态和传递函数)。
从最抽象的意义上来说,这些应用程序所做的就是取数据进来,存储在数据库,需要的时候再取出来。抽象是对抗复杂性的最强武器。操作系统提供存储的基本抽象:内存寻址空间和磁盘逻辑块号。在此基础上,文件系统提供了从文件名到地址空间的KV存储抽象。另一方面,数据库提供了应用程序一般存储要求的高级抽象。互联网应用多为数据密集型应用。对于真实世界的数据密集型应用程序,除非你准备从基本组件的轮子开始构建,否则没有太多机会摆弄花哨的数据结构和算法。
6、为什么要学 数据库?为什么学习数据库?因为他重要,一个没有数据库的系统是死系统,只有有数据库才是活的~当然如果你只是想做一个静态的网页数据库也没用,但是现在网络提倡的理念是互动的~大家都需要交流,那么这些交流的信息呢?使用数据库储存贝类。什么时候需要使用数据库?当你需要存储信息的时候,比如动态的网站、门户网站,它们的一些信息是动态的,那么这个时候就用数据库了。什么是数据库?
为什么数据库在网络时代更重要?这个问题比较容易,因为网络提倡互动,所以你必须用数据库来实现互动。现在网络在向开放互动的方向发展,不会再是站长说了算,网络被改造成了一个交流平台,大家可以对他进行评判,也只能在这个平台上交流。那你想交流什么呢?如果交换大量信息呢?很简单,用数据库来存储。