这是因为,任何数据存储,都是通过 *** 作系统来进行的,而 *** 作系统存储方式都是顺序存储,不是你能控制的。
100块磁盘,只能是做成阵列,做成阵列,也是由系统和阵列控制的,它的存储也是按顺序进行的,而不是想存放哪里就存放哪里。
你那10亿条数据,肯定不可能一个文件1条数据,而是个数据库,这个数据库归根到底也是一堆文件,这些文件,也是不能被平均的。
这就好比,你那10一条数据,是一个或多个文件组成。一个人,不能坐在两个船上,也不能坐在两个飞机上。数据库也不能。
出这种问题得老师,应该是养生堂毕业的微信老娘们儿。
10亿级别的什么数据?如果是 关系型很强,而且数据很值钱的数据, 例如 顾客--交易--商品--金额 一个系列的, 那么这种很重要的数据,建议是 Oracle, 因为 数据丢不起啊。
如果是 关系型强, 但是数据不是很值钱的数据, 例如 A股 从开市以来, 所有股票的 每日,每小时,30分,15分,5分 钟的行情数据。 那么你可以使用 Mysql。 反正丢了就重新导入一次。
如果是 关系型不强, 数据也不是很值钱的数据, 例如 论坛的帖子 这一类的, 那么用 mongodb 就更合适一些。
业务数据,包括用户,订单等数据,要求数据严格准确和一致
规模如果是在千万级,或者不超过10亿级,80%选用MySQL来存储
规模如果再10亿-万亿,目前HBASE为主
以上两种是免费数据库,但对于Oracle,DB2,SQL Server付费数据库(巨贵),主要使用在银行和电信,因为对数据一致性,准确性,容灾备份要求更严格。
因为商业数据库的昂贵,互联网公司一般用不起,感兴趣可以了解下10年前阿里发起的去IOE的故事,即去掉IBM,Oracle,EMC,代替以开源软件再次开放的系统,开创新数据新时代。
日志数据,包括用户所有线上行为数据,浏览,搜索,点击等,存储在HDFS上
这类数据,相比订单和支付数据,规模要成10倍-1000倍增长。比如,我浏览10个店铺宝贝才转化一个订单数据。但该类数据,不会要求太多性能和苛刻的准确性,甚至可以容忍丢小部分日志数据。这部分数据,会放到HDFS上来存储。即一种分部式文件存储系统,存储成本很低,如果查询的话,就可以直接使用hive等工具,写SQL查询。
当然,数据库现在发展很迅猛,比如TiDB,非关系数据库MongoDB,缓存Redis等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)