0、读数据库 还是 读文件
txt快.
之所以大家用数据库,是因为TXT对于大量数据中的某一些符合要求的数据进行"查找"效率低
1 、直接读文件相比数据库查询效率更胜一筹
2 、一次读取的内容越大,直接读文件的优势会越明显。
读文件时间都是小幅增长(这跟文件存储的连续性和簇大小等有关系),说明MYSQL对更大文件读取可能又附加了某些操作(两次时间增长了近30%),如果只是单纯的赋值转换应该是差异偏小才对。
3 、写文件和INSERT几乎不用测试就可以推测出,数据库效率只会更差。
4 、很小的配置文件如果不需要使用到数据库特性,更加适合放到独立文件里存取,无需单独创建数据表或记录,很大的文件比如图片、音乐等采用文件存储更为方便,只把路径或缩略图等索引信息放到数据库里更合理一些。
总结
读 写任何类型的数据都没有直接操作文件来的快,不论MSYQL过程如何,最后都要到磁盘上去读这个“文件”(记录存储区等效),所以当然这一切的前提是只读 内容,无关任何排序或查找操作
对比
io写硬盘
优势:本地文件系统,不需要通过jdbc驱动序列化进行网络传输,不存在网络问题
劣势:跟硬盘性能有关,没有优化(当然自己可以封装,例如:使用内存缓存,然后批量触发,但这样会占用少量内存资源,也比较麻烦)
存数据库
优势:如果连接已经存在,客户端无需关心服务端的处理(cilent发送过去 ->服务端缓存-〉结束),无需像写硬盘等待写入结束。自己负责事情少,检索方便!
劣势:网络问题,如果连接不存在,有连接数据库的开销
数据库的优势是体现的大量数据的查询、统计以及并发读写,不是在速度上.
一、数据库分类
- 层次式数据库 - 按路径查询数据
a. 含义:是一种有根节点的 定向有序树。
b. 条件: 1)有且只有一个结点 没有双亲结点;2)根以外的其他结点 有且只有一个双亲结点
只能处理 一对多 的实体联系。
c. 特点:任何一个给定的记录值只能按其层次路径查看,没有一个子女记录能够脱离双亲记录值而独立存在的。
d. 优点:数据结构比较简单清晰,数据库的查询效率高,提供了良好的完整性支持。
e. 缺点:现实世界中很多联系是非层次性的,它不适用于结点之间具有多对多联系;查询子女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化。
- 网络式数据库 - 按路径查询数据
a. 按照网状数据结构建立的数据库系统。
b. 条件:1)允许一个以上的结点无双亲;2)一个结点可以有多于一个的双亲。
注:层次模型实际上是网状模型的一个特例。
c. 优点:能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点直接可以有多种联系;具有良好的性能,存取效率较高。
d. 缺点:结构比较复杂,随应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;记录之间的联系是通过存取路径实现的,访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节。
- 关系型数据库 - 必须定义表结构
a. 由来
虽然网状数据库和层次数据库已经很好的解决了数据的集中和共享问题,但在数据库 独立性 和 抽象级别上仍有很大欠缺。
用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。二关系型数据库能很好的解决这个问题。
关系型数据库模型,把复杂的数据结构归结为简单的二元关系 即 二维表格形式。
b. 最典型的数据结构是 表
id | content |
---|---|
1 | test a |