记下 DB 存取与文件存取的差异

本文来源于之前做的一个小程序科技爱好者周刊在文章数据存储上的技术选型思考。
当时想着后期把文章 markdown 文件内容迁移到云数据库通过云函数查询出来显示。后来想想为什么非要这么做呢,数据库存取就一定好吗??

存储数据方式
数据库的要比单纯的文件存储复杂很多。
以 Oracle 为例:
从数据库的内存结构上来看,一个运行的数据库实例包含 SGA 区+PGA 区。

  • SGA区由数据缓冲区、共享池、重做日志缓冲区、大型池、JAVA池构成
  • PGA区由排序区、私有SQL区以及堆栈构成

如果我们只是insert一条语句,单纯比较速度,自然是写入文件快,这只是一个简单的IO操作。此时写入数据库的话,首先需要建立连接,这个需要时间,其次要先在内存中SGA进行分析,解析SQL语句,再加上一些必要的操作,最后写入到数据库文件中,这个数据库文件本质上也是一个文件。
但是数据库的SGA缓存优化,能够大大减少搜索时间。而且文本文件只是一个简单的存储,没有检索功能。

所以

  • 如果是简单的配置参数或特别小的数据,可以考虑存储在文件中,读写速度快。
  • 如果大批量的数据,肯定是存在数据库中比较好了,数据库会把很多数据放内存里,不会每次都读盘。

这样的话,因为在上述场景中小程序读取的 markdown 文件不算是大文件所以直接采用文件存储也就未尝不可了。

数据库读取速度与文件IO读取速度比较相关推荐

  1. php读取doc pdf文件,PHP读取创建txt,doc,xls,pdf类型文件

    PHP读取或者创建txt,doc,xls,pdf各个类型文件的方法. php读取(文本.txt)文件: 一般是使用fopen.fgets的方法,例如: $fp=fopen('文件名.txt','r') ...

  2. python读取raw图片文件_python读取raw binary图片并提取统计信息的实例

    python读取raw binary图片并提取统计信息的实例 发布时间:2020-09-08 23:22:52 来源:脚本之家 阅读:66 用python语言读取二进制图片文件,并提取非零数据统计信息 ...

  3. 读取云服务器文件列表,读取云服务器文件列表

    读取云服务器文件列表 内容精选 换一换 登录Windows操作系统的弹性云服务器时,需使用密码方式登录.因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的管理员 ...

  4. qt文件逐行读取_QT平台文件逐行读取和字符串规律输出练习

    QT平台文件逐行读取和字符串规律输出练习 练习要求 逐行读取指定文件里的字符串,把字符串转换后进行输出,转换要求为十个字符为一组,偶数组(0,2-)为为非数字,奇数组(1,3-)是为数字.非数字用完, ...

  5. 直接读取ftp服务器文件,java读取ftp服务器文件

    java读取ftp服务器文件 [2021-02-05 07:08:30]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  6. java读取大txt文件_Java读取具有7000万行文本的大文本文件

    小编典典 1)我确定速度没有差异,两者都在内部使用FileInputStream和缓冲 2)您可以进行测量并亲自查看 3)虽然没有性能优势,但我喜欢1.7方法 try (BufferedReader ...

  7. php远程读取几行文件,PHP读取远程文件的三种方法

    PHP读取远程文件的三种方法 (2008-08-01 14:29:55) 标签: php 下载远程文件 it HP读取远程文件的几种方法,做采集的第一步就是读取远程文件- 1.file_get_con ...

  8. java读取 500M 以上文件,java读取大文件

    设置缓存大小BUFFER_SIZE ,Config.tempdatafile是文件地址 package com.yjf.util;import java.io.File;import java.io. ...

  9. Java读取HTML传人文件,java读取html文件并获取body中所有的标签及内容的案例.pdf

    java读读取取html文文件件,并并获获取取body中中所所有有的的标标签签及及内内容容的的案案例例 这里的获取的是html文件中body 中的所有标签以及内容 package com.lmt.se ...

最新文章

  1. integer是值传递还是引用传递_数据值Value传递-高位传递
  2. BZOJ 3622 Luogu P4859 已经没有什么好害怕的了 (容斥原理、DP)
  3. centos中如何找出系统中 load 高时处于运行队列的进程
  4. SQL 学习最强刷题网站!
  5. lstm原文_LSTM模型与水文模型在径流模拟中的比较
  6. 安装oracle后电脑无法启动,求救,Oracle11g安装成功后,总是无法启动
  7. 再见 SIM 卡,你好 eSIM !华为回应不上市;熊猫直播正式关停 | 极客头条
  8. PB混淆加密大师(powerbuilder防止反编译,pb混淆器,PB加壳,支持5-12)
  9. Java员工管理系统
  10. 深度学习教程 | 吴恩达专项课程 · 全套笔记解读
  11. exchange创建邮箱组_在 Exchange Server 中创建用户邮箱
  12. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8)
  13. 恭贺经纬恒润参股企业“挚途科技”实现L3级自动驾驶重卡商业化落地
  14. dxf怎么用cad打开?办公常备
  15. C/C++植物大战僵尸之CE找基址+修改器制作(基础版)
  16. php实现邮箱激活功能
  17. TB级(小白到大牛之路)技术视频资源福利大放送
  18. android 网易云音乐上滑动画,Android_Activity切换动画OverridePendingTransition(Cover 网易云音乐动画)...
  19. 阿里巴巴YunOS在CES上展示IoT生态
  20. 前端技术周刊 2018-10-08:WebGL

热门文章

  1. onMouseEnter,onMouseLeave,onMouseOver,onMouseOut的区别
  2. javax.swing设计的系统登录界面
  3. 项目经理常用的几张图表,管理者必备
  4. 分支与循环语句C语言
  5. 总结一下最近看的关于剪枝的论文
  6. C++解析multipart/form-data
  7. gitlab查看版本号的两种方法
  8. 什么是MVC?MVC的好处
  9. linux系统fsck.ext4,linux – 如何在fsck之后恢复损坏的ext4文件系统?
  10. 出现undefined的几种情况