我有一台机器用于设置数据库。该数据库的主要目的是写/写审计日志。写/读比率约为9:1。本来我打算用MySQL。后来我听说NoSQL DB在"缩小"时有更好的表现。我感兴趣的是如果我只有一台机器,NoSQL DB(例如,cassandra或mongo DB)的性能是否比MySQL好?
答案 0 :(得分:0)
是的,确实如此。 我正在使用MongoDB。我在MySQL和MongoDB上尝试了我的应用程序。我在MongoDB上看到了更好的性能。 所以,总的来说,我注意到了更好的表现。 但我认为这取决于某些因素,例如你是否使用了连接,外键等等。你必须在NoSQL中知道通常没有连接等。
PS:说完了这一切。这取决于你在做什么和做什么 此外,如果您使用MongoDB作为NoSQL数据库,请检查较新版本(3.0),因为它们说它比旧版本(2.6)快10倍。如果您真的需要高性能数据库,可以选择 Redis 。 它是一个“NoSQL”键值数据存储。更准确地说,它是一个数据结构服务器。虽然MongoDB可用于类似的键/值用例,但不像MongoDB(基于磁盘的文档存储)。最接近的模拟可能是将Redis视为Memcached,但内置持久性(快照或日记到磁盘)和更多数据类型。
您需要阅读一些有关它的信息,以确定对您来说重要的事情。
答案 1 :(得分:0)
真的取决于您的使用方案。通常,NoSQL解决方案倾向于提供更简单的语义,理论上至少可以避免一些符合ACID的SQL解决方案的开销。在实践中,虽然现实世界的表现可能受到许多因素的影响,但理论很少发挥作用。
在一个盒子上,您可能最好花时间优化代码以使用您选择的任何平台。
有"教科书"处理日志数据的解决方案 - ElasticSearch / Kibana / LogStash是一个常见的解决方案,Redis是另一个解决方案 - 通常专注于更大规模的系统,并且不适合您的单机要求。
根据您愿意投入多少资金,在使用ESENT或BerkeleyDB等非常薄的存储机制时,您可以将最大的IOPS压缩。但是警告的话:那些工作真的更痛苦。
总而言之,我将重复一遍:在一个盒子上,您可能最好花时间优化代码以使用您选择的任何平台。
答案 2 :(得分:0)
其中一个具有持久性的内存NoSQL数据库是您的方案的最佳选择。它们的写入操作非常快,因为在引擎盖下的写操作只是写入写入日志文件的末尾,即使在磁盘上也可以以高达100mb /秒的速度写入。
尝试 Redis 或 Tarantool 。如果你有大量的并发写入负载,后者会更好。