请问数据保存在txt文件中和数据库中相比有什么利弊啊?
一、数据保存在txt文件中和数据库中相比有什么利弊
这么小的数据量,完全不用考虑占用空间和读写速度哪个多哪个快的问题
使用数据库的话你编程会简便很多,比如你要检索数据的话,使用数据库就可以直接执行select语句来检索,那么程序编码会方便很多。而且你这个数据库还可能中检索的同时持续追加更多数据,数据库会帮你做并发控制和事务处理,用文件存储的话后续你一定需要手动处理这些问题,非常低效。
如果是设备上面运行db的话,建议使用mysql的嵌入式版本,因为sqlite的并发控制粒度太大,是全局锁,也就是读的时候不可以写入,写的时候不可以读。如果是服务器上吗的话必须使用mysql,sqlite也就适合客户端程序内部简单存取数据而已。
数据库与文本文件的差异非常多; 但从使用来说最基本的差异: 文本文件主要是独占使用;数据库多用于共享使用;
上面是说文本文件主要是独占使用,当然也可以共享访问,在日常业务系统里面,配置文件与日志主要采用文本文件;
打开查看文本文件非常方便,不需要特别的软件或者中间件;在Linux下;使用cat tail head等命令都可以方便查看,也可以用命令进行查找等;而数据库的访问都需要别的工具来辅助;
数据库的查询、统计、更新非常方便;例如查看每天8:00-9:00时间段的所有数据,或者只显示统计信息等;还有索引、缓存、多用户并发使用等功能。
延伸阅读:
二、文件打开方式
文件的打开方式有下面这几种:
r: 以只读方式打开文件。文件的指针将会放在文件的开头。默认打开方式。
rb: 以二进制只读方式打开一个文件。文件指针放在文件的开头。
r+: 以读写方式打开一个文件。文件指针会放在文件的开头。
rb+: 以二进制读写方式打开一个文件。文件指针会放在文件的开头。
w: 以写入方式打开一个文件。如果文件存在,则覆盖原文件。如果文件不存在,则新建文件。
wb: 以二进制写入方式打开一个文件。如果文件存在,则覆盖原文件。如果文件不存在,则新建文件。
w+: 以读写方式打开一个文件。如果文件存在,则覆盖原文件。如果文件不存在,则新建文件。
wb+: 以二进制读写方式打开一个文件。如果文件存在,则覆盖原文件。如果文件不存在,则新建文件。
a: 追加方式打开文件。如果文件存在,指针在文件末尾,新内容写入到原有内容后面。如果文件不存在,创建新文件。
ab: 二进制追加方式打开文件。(同上)。
a+: 追加读写方式打开文件。如果文件存在,指针在文件末尾。如果文件不存在,创建新文件。
ab+: 二进制追加方式打开一个文件。(同上)。

猜你喜欢LIKE
相关推荐HOT
更多>>
线程池执行过程中遇到异常会发生什么,怎样处理?
线程池执行过程中遇到异常以及处理线程池执行过程中遇到异常会触发一系列的处理机制。当线程池中的某个线程抛出未捕获的异常时,线程将立即终止...详情>>
2023-10-16 22:10:11
为什么说PHP与Swoole是优异组合?
PHP与Swoole在Web开发和网络编程领域中,共同构成了一种强大的解决方案。什么是PHPPHP是一种广泛使用的开源服务器端脚本语言,特别适用于Web开...详情>>
2023-10-16 20:56:37
有什么好用的redis可视化管理工具?
一、Redis Desk较好 ManagerRedis Desk较好 Manager是一款非常受欢迎的Redis数据库管理工具。它支持直接进行数据修改、删除和新增等操作,而且...详情>>
2023-10-16 19:30:54
mysql怎么查询连续时间段的最大值?
一、mysql怎么查询连续时间段的最大值按仪器与时间(处理成小时)group by,计算值的数量与和,再根据结果判断值数量是否有缺失值,以及和的最...详情>>
2023-10-16 15:15:18热门推荐
Oracle怎么连接数据库?
沸git pull 和git fetch的区别?
热JDK动态代理为什么必须要基于接口?
热线程池执行过程中遇到异常会发生什么,怎样处理?
新HTTP协议中URI和URL有什么区别?
为什么说PHP与Swoole是优异组合?
显示器的 VGA、HDMI、DVI 和 DisplayPort 接口有什么区别?
如何删除需要使用管理员权限才能删除的文件?
有什么好用的redis可视化管理工具?
arm架构和x86架构有什么区别?
GitLab为什么选择Vue.js?
实现atoi函数时需要注意什么?
Ruby中为什么不能显式的调用私有方法?
与数据库的连接为什么会很耗时、耗费资源?
技术干货






