标签: nosql

sql文本字段vs平面文件vs nosql文档存储

我计划有一个SQL事实表,涉及一个我不希望索引的文本字段(我只读出数据,很少更新它).我认为这个表可能会变得非常大,主要是由于这个文本字段.我的数据库中的其余数据确实是有关系的,但我相信如果我存储指向平面文件的指针(其中每个指针指向存储在S3中的不同文本文件),我可以更容易和更便宜地扩展.而不是使用文本字段.

这似乎是越来越受欢迎的替代方案是一个完全的NoSQL基于文档的解决方案(例如,CouchDB的,MongoDB的,等等),我想知道什么是权衡(可扩展性/可靠性/安全/性能/易于实施的/易于维护/成本在简单地使用SQL文本字段,指向平面文件的指针,还是在NoSQL文档存储的上下文中完全重新思考整个系统之间?

sql text flat-file mongodb nosql

4
推荐指数
1
解决办法
2583
查看次数

使用push()时出现mongoose错误

-- express_example 
|---- app.js 
|---- models 
|-------- songs.js 
|-------- albums.js 
|---- and another files of expressjs 

songs.js:

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema, 
    ObjectId = Schema.ObjectId;

var SongSchema = new Schema({
    name: {type: String, default: 'songname'},
    link: {type: String, default: './data/train.mp3'}, 
    date: {type: Date, default: Date.now()},
    position: {type: Number, default: 0},
    weekOnChart: {type: Number, default: 0},
    listend: {type: Number, default: 0}
});
module.exports = mongoose.model('Song', SongSchema);
Run Code Online (Sandbox Code Playgroud)

album.js:

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    SongSchema = require('mongoose').model('Song'),
    ObjectId = …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb nosql express

4
推荐指数
1
解决办法
1513
查看次数

"uncap"一个上限的MongoDB集合

有没有办法"打开"封顶集合?创建新集合并复制数据不是我的选择.

谢谢

mongodb nosql

4
推荐指数
2
解决办法
2423
查看次数

Redis/Memcached/MongoDB(或任何NoSQL系统)是否支持MySQL的ON DUPLICATE KEY UPDATE?

我需要跟踪哪个用户访问了哪个页面多少次.

在MySQL中我会做这样的事情:

INSERT INTO stats (user_id, url, hits)
VALUES (1234, "/page/1234567890", 1)
ON DUPLICATE KEY UPDATE hits = hits + 1;
Run Code Online (Sandbox Code Playgroud)

在表stats (user_id, url)UNIQUE

我正在寻找为此目的找到最快的系统.因为这仅适用于统计数据,因此保持耐久性并不重要.

Redis或MongoDB或Memcached或任何其他NoSQL系统是否支持这样的功能?您将如何实现此目标以获得最高性能?

mysql memcached mongodb nosql redis

4
推荐指数
1
解决办法
830
查看次数

有没有办法像Hibernate一样在Neo4J上记录查询?

所以,这是场景:

  • 我有Neo4J服务器在本地运行,其中包含一些数据
  • 我有一个使用的网络应用程序 spring-data-neo4j

以下代码基于示例代码Cineasts:

public interface CrewRepository extends GraphRepository<Crew> {

  Iterable<Crew> findByNameLike(String name);

  @Query("start thinker=node({0}) match thinker-[:crews]-crews return crews")
  Set<Crew> findByThinker(Long thinkerId);

}
Run Code Online (Sandbox Code Playgroud)

这里没有消息.问题是:查询findByNameLike不起作用,而findByThinker确实如此.

我已多次修改我的日志配置文件 - 最终版本是下面的版本 - 但是,无论我尝试什么,我都看不到任何查询被记录 - 无论是在我的日志文件还是在服务器上.

<logger name="org.neo4j">
  <level value="DEBUG" />
  <appender-ref ref="console" />
</logger>

<logger name="org.springframework.data.neo4j">
  <level value="DEBUG" />
  <appender-ref ref="console" />
</logger>

<root>
  <priority value="error" />
  <appender-ref ref="console" />
</root>
Run Code Online (Sandbox Code Playgroud)

我想要的只是记录查询,所以我可以看到它是否是一个错误,spring-data-neo4j或者我是否遗漏了什么......我已经查看了两个文档,代码示例,找不到任何具体的内容.

有帮助吗?谢谢!

neo4j nosql spring-data spring-data-neo4j

4
推荐指数
1
解决办法
2215
查看次数

在更改后端时备份Riak数据

我在运行Ubuntu Linux Natty的VMWare Workstation中安装了Riak(1.0.2).这是一台机器安装而不是集群.

我将后端从BitCask更改为LevelDB以利用二级索引.但是,现在我的所有其他数据都无法访问(我确定它仍然存在,可能与新的后端不兼容).

如何备份Riak数据并使其可以在后端之间访问?!

提前致谢.

nosql riak

4
推荐指数
1
解决办法
620
查看次数

NoSQL db性能测试

假设你有一个nosql数据库 - redis,cassandra,mongodb.您需要检查此数据库的整体性能 - 各种平台,操作系统,甚至用于测试的编程语言.它不依赖于特定的应用程序或架构.

  • 你想看什么测试?你能帮我形成要求吗?
    • 数据库如何在集群中运行?
    • 在破碎的集群?
    • 在云环境?
    • 当10k连接打开时它如何执行查询?
  • 你会用什么工具?
    • 它是像JMeter-> http server-> database?
    • Jmeter-> tcp app->数据库?
    • 其他?

我发现的关于数据库性能测试的所有材料都像测试数据库作为某个产品的一部分(特定方案,特定环境).当数据库是产品本身时,您是否考虑过数据库性能测试?

期待你的帮助.

-vova

testing performance load-testing nosql database-performance

4
推荐指数
1
解决办法
7499
查看次数

RavenDb索引排序

让我们假设我们有最简单的Map索引:

Map = posts => from post in posts
               orderby post.DateTime
               select new { Id = post.Id, DateTime = post.DateTime }
Run Code Online (Sandbox Code Playgroud)

OrderBy子句如何影响Map索引结果?如果您的查询未明确提供订单子句,它是否定义了默认文档排序?如果在索引和查询中既没有提供排序子句,那么文档是如何排序的?

.net nosql ravendb

4
推荐指数
1
解决办法
1825
查看次数

MongoDB中大规模关系的最佳数据模型

我们正在采用MongoDB来构建新的解决方案,目前正在尝试根据我们的需求设计最有效的数据模型,并考虑数据项之间的关系.

我们必须在用户,项目和列表之间保持三方关系.用户可以拥有许多项目和许多列表.列表将包含一个用户和多个项目.一个项目可以属于许多用户和许多列表.后者尤其重要 - 一个项目可能属于潜在的大量列表:数千,当然可能数十或数十万.未来可能甚至是数百万.我们需要能够在两个方向上导航这些关系:例如,获取列表中的所有项目或项目所属的所有列表.我们还需要解决方案是通用的,以便我们可以在需要时添加更多类型的文档和关系.

所以似乎有两种可能的解决方案.第一种是数据库中的每个文档都有一个由一系列ID组成的"关系"集合.因此,列表文档将具有包含所有项的ID的项目的关系集合以及具有用户的单个ID的关系集合.在此模型中,当项目属于许多,许多用户或许多列表时,这些数组将变得庞大.

第二个模型需要一种新类型的文档,一个"关系"文档,用于存储每个合作伙伴的ID和关系名称.这会整体存储更多数据,因此会影响磁盘空间.在NoSQL中,它看起来像是一种"不自然"的方法来解决这个问题.

性能方面,空间方面,架构方面,这更好,为什么?

干杯,马特

mongodb nosql

4
推荐指数
1
解决办法
1227
查看次数

Riak钥匙中的特殊字符

我想通过REST将一个带有特殊字符的密钥(在我的情况下为斜线)存储到Riak.

如何http://wiki.basho.com/Riak-Search---Querying.html#Fields说:

如果您的字段包含特殊字符,例如('+',' - ','/','[',']','(',')',':'或空格),则围绕短语用单引号,或用反斜杠转义每个特殊字符.

但这些领域,而不是关键.我试图反斜杠,但遗憾的是它不起作用.

我找不到关于这个问题的任何信息.有人知道如何掩盖钥匙中的特殊字符吗?

示例(不工作):

PUT https://riak:8069/buckets/key/keys/11111\/2
Run Code Online (Sandbox Code Playgroud)

其中键是11111/2

nosql riak

4
推荐指数
1
解决办法
1056
查看次数