项目中存储数据的方式 解决泄露的8亿条数据文本文档的读取难题

项目中使用到的数据、可能有很多,如商城中的商品信息、论坛中的帖子、ATM中的交易数据、炒股应用中的股票价格等等

这些数据可以有如下存储方式:

1.内存:速度快;但容量有限,非永久存储(一旦断电,数据全都丢失,可以想象成我们的电脑内存)

2.自定义结构的文件:使用简单直接;但不便于大量数据查找

3.Excel/Access等格式化文件:使用广泛;灵活性不足(一个简单的例子就是14亿户口信息,如果存储在Excel中是显示不完全的)

4.专用文件服务器:网络存储/云存储,可靠性高;操作复杂(这个是专业文件服务器,缺点就是贵,毕竟要租用服务器,有的企业不乐意用第三方的云服务器厂商,干脆自己搭建机房,比如银行)

5.数据库服务器:存取效率高,尤其适合海量数据;操作复杂(这是我们学习的重点)

以前我真的不知道学习数据的存储方式到底有什么用途,直到最近看到一篇新闻是关于国内某知名社交软件8亿qq绑定手机的信息泄露的,我第一时间拿到了资源,下载解压后发现是一个20G的TXT文本文件,在Windows下一个近20g的TXT文本文件

我想用学过的知识解决这个20G的文本文件,于是我开始了各种尝试,内存和自定义结构的文件首先pass掉,因为我看了一眼我的电脑内存只有4G,果断放弃

notepad已然是打不开的,直接提示xxx.txt太长,无法用记事本打开,他喵的。。。。

后来我尝试把xxx.txt 后缀改成csv,然后用Excel打开,Excel弹出了一个窗口,“没有完全加载”,结果只发现了1048576行,最终百度了一下,Excel最大支持的行数是2^20,也就是1024*1024=1048576

至于专用服务器,我压根就没想,估计它的速度和我电脑固态硬盘的速度差不多,最后,我用了MySQL数据管理软件,通过建立字段、导入数据库、添加索引等一列操作后,SELECT * FROM 8e WHERE id="13xxxxxxxx"; 瞬间查到了我的手机

其实了解数据的存储方式还是很有必要的,在处理海量数据的时候,如果文件内容呈现一定的规律,使用数据库是一个明智的选择

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×