互联网时代处理大量流动性数据社交网络数据最好使用哪些类型数据库

互联网时代处理大量流动性数据社交网络数据最好使用哪些类型数据库,第1张

使用现有的主要吸引力一、可扩展的NoSQL数据

如果您的整个 _active set_ 适合单个机器的主内存(现代商品机器可以高达 128GB +),那么您就没有水平可扩展性问题:即,您绝对没有理由进行分区(“分片") ) 你的数据库和放弃关系。如果您的活动数据集适合内存,那么任何带有索引的适当调整的数据库都将表现得足够好,可以在数据库本身成为限制之前使您的以太网卡饱和。

如果您认为关系模型本身并不合适,您可以轻松地在 MySQL 之上构建一个“面向文档的存储”:这就是 Friendfeed 最终要做的,我会遵循他们的模型(除非我使用 Avro (软件)、Apache Thrift 或 Google Protocol Buffers 而不是特定于语言的序列化)-

http://bret.appspot.com/entry/how-friendfeed-uses-mysql

如果您的站点变得非常成功,您将拥有一个不再适合您机器的主内存的活动集。在这种情况下,设计不当的存储引擎的性能会迅速下降。但是,MySQL 的 InnoDB(或 Postgres 的存储引擎)仍然允许您使用旋转磁盘保持(取决于您的请求分布)大约 2:1-5:1 的数据与内存比率。一旦超出这个范围,性能就会开始迅速下降(因为您要为每个请求进行多次磁盘搜索)。现在,您最好的做法是升级到 SSD(固态驱动器),这再次允许您在数据库成为限制之前使以太网卡饱和。

最后,当您遇到不适合的数据集大小时,例如,软件 raid 1 + 0 配置中的多个 SSD(同时为备份、多个版本的数据等提供空间...),那么您必须水平缩放。也就是说,您必须使用本质上支持分区的数据库(例如 Riak、Voldemort、Cassandra、HBase),或者在基于 MySQL/Postgres 的数据存储之上构建应用程序级分区层。我无法告诉您哪种解决方案是正确的,因为我(或您)都不知道您的数据及其访问模式在那时会是什么样子。也就是说,编写自己的分片层是您可以在代码中引入额外错误的另一个地方:不必构建自己的分布式数据库(您通过构建分片层有效地做的事情)是使用现有的主要吸引力一、可扩展的NoSQL数据

一般的数据量很小的项目,没必要使用数据库,如果只是保存写用户信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。

对于sqlite和coredata,只是两种不同的存储方法,一种是小型轻量级sqlite数据库,所有移动设备经常用到的,还有一种是苹果针对ios *** 作系统开发的coredata数据存储,可以说是各有优缺点,一般如果数据库要非常多的表格互相关联最后查询一条结果那么采用sqlite,如果存储一些有规律的数据那么就会采用coredata,没有哪个更好的说法,只能说这两种都各有千秋,而我听前辈们说,coredata只是苹果对sqlite的又一次封装而已,方便 *** 作但也局限 *** 作。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存