首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建议使用NoSQL数据库来替换包含大型对象和许多属性的MySQL数据库。

问建议使用NoSQL数据库来替换包含大型对象和许多属性的MySQL数据库。
EN

Stack Overflow用户
提问于 2013-05-14 14:08:25
回答 3查看 588关注 0票数 1

我正在为MySQL寻找一个替代数据库(Engine = MyISAM)。

我的Java应用程序存储大型对象,每个对象具有250-300个属性。一个MySQL服务器上大约有5亿个对象。避免不必要的连接,它使用垂直分区,手动执行。有将近250个表用于存储属性值,这些表也被编入索引。当查询特定属性时,MySQL执行得很慢(查询5个属性意味着5个联接)。

建议使用NoSQL-数据库来提高查询性能的速度(范围查询、精确匹配查询以及它们的组合)。

MongoDB似乎是将这些对象存储在单个集合中的一个很好的替代方法,不幸的是,MongoDB只能为每个集合最多64个属性索引,这意味着我还必须拆分对象值。MongoDB也没有提供加入集合服务器端的功能。

  1. 有人知道如何使用MongoDB / Java使用dbref /手动引用“连接”多个集合吗?
  2. 如果不是,是否还有其他NoSQL数据库来存储具有约250个属性的大型对象,如上文所述?

要求:

  • 不需要交易
  • 用户只能看到他们查询的属性,而不是整个对象。
  • 单数据库服务器环境。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-14 14:53:10

有64个索引的限制,但您可以执行如下操作。

在'attr‘数组中,您可以将250-300属性放在'attr’上,然后对‘attr’进行索引。然后您可以查询任何attr元素。

但让我提醒你,这个指数的大小将是巨大的。“attr”字段中的每个元素将有一个索引条目。但是您可以分析查询性能。

代码语言:javascript
复制
test:Mongo > db.abhi.insert({ name : 'abhi', attr : [ { attr1 : 'val1' }, { attr2 : 'val2'}, {attr3 : 'val3'} ]})

test:Mongo > db.abhi.ensureIndex({attr : 1})
test:Mongo > db.abhi.find({attr : {attr1 : 'val1'}}).explain()
{
    "cursor" : "BtreeCursor attr_1",
    "isMultiKey" : true,
    "n" : 1,
    "nscannedObjects" : 1,
    "nscanned" : 1,
    "nscannedObjectsAllPlans" : 1,
    "nscannedAllPlans" : 1,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "millis" : 0,
    "indexBounds" : {
        "attr" : [
            [
                {
                    "attr1" : "val1"
                },
                {
                    "attr1" : "val1"
                }
            ]
        ]
    },
    "server" : "bdvlpabhishekk:27017"
}
票数 1
EN

Stack Overflow用户

发布于 2013-05-14 15:55:03

我个人曾在OrientDB工作(并为之贡献),但有很多nosql,他在领域的数量上没有限制

我可以在几个网站上找到更多的信息:

nosql数据库

oriendb诉mongodb

票数 1
EN

Stack Overflow用户

发布于 2013-05-21 12:39:15

AerospikeDB是一个很好的解决方案。

它通常被部署在数十亿个物体上,所以5亿不会是汗水

索引将很大,但索引的内存表示形式相当紧凑.索引的大小将取决于给定属性上单个索引值的选择性。如果您知道选择性,就可以计算不分页的确切内存量,而且由于对SSD进行了优化,所以性能要比SSD上的其他NoSQL数据库要好得多。

存储此数量的列非常有效,并且不需要内部连接。

http://aerospike.com/

警告:我写了一部“飞机票”,但我还是喜欢它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16545438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档