用mysql存数据与直接用文本文件存数据的去别

用mysql存数据与直接用文本文件存数据的去别,第1张

用mysql存数据与直接用文本文件存数据的区别是:

1.

你存文本和存数据库,不一定数据库会节省空间,但是可预见的,大部分情况下数据库会更节省空间,尤其是在大数据量的情况下

2.

读写文本文件和数据库速度差别肯定非常大,首先数据库有索引之类的,可以加速数据读取写入效率,当然你文本文件也可以实现这些,但是跟自己从头写个数据库没差别了,文本文件读写你总得要考虑命中率,文本的遍历命中是很低的

3.

sqlite其实不推荐在服务端使用,因为在并发读写的情况下表现很差,至少连2个9的可靠性都达不到,物联网设备要的是高读高写还有大数据量,其实我是推荐MongoDB的,不过你这里选用MySQL也是可以的

4.

关于背后的原理,你可以了解下数据结构相关的知识

读文件效率比数据库高无数倍,无论数据有多少都能高无数倍。数据库的优点是可以条件筛选,因为数据库有索引,所以在条件筛选的时候会比文本文件快(如果你的文本文件自己建立内容索引,就会比数据库快)文本文件推荐你使用的方式是二进制读写,所有文本都转换为二进制存进去,每一条记录都使用固定的字节数,最前面的八字节写一个64位long型的时间,然后在你需要读取的时候,可以用文本总长度除以你每一条的固定字节数,得到这个文件到底有几条数据,然后用二分法去判定每一条的时间,经实际测试亿万条数据可以在一个最小计时器周期内找到需要的数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10003525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存