NoSQL 和传统的 RDBMS 有什么区别?
在过去的几个月里,NoSQL 经常在技术新闻中被提及。与传统的 RDBMS 相比,它最重要的特征是什么?差异发生在什么级别(物理、逻辑)?
哪里是使用 NoSQL 的最佳场所?为什么?
我曾经像这样标记数据库中的列:
user_id
user_name
user_password_hash
Run Code Online (Sandbox Code Playgroud)
为了避免在连接两个表时发生冲突,但后来我学到了更多关于如何为表设置别名的知识,我不再这样做了。
在数据库中标记列的有效方法是什么?为什么?
数据仓库建模的主要拓扑(星形、雪花)在设计时考虑了一对多关系。当面临这些建模方案中的多对多关系时,查询可读性、性能和结构会严重下降。
有哪些方法可以在数据仓库中实现维度之间或事实表与维度之间的多对多关系?它们对必要的粒度和查询性能造成了哪些影响?
我们一直在研究将 SSD 与 Oracle 结合使用,以加快我们的测试迁移运行。目前完成迁移运行需要 12-18 小时,具体取决于数据量(我们显然也在进行大量性能调整)。我们有许多廉价的 linux 机器,用于各种运行和分析。
直接从戴尔购买 SSD 的成本高得令人望而却步。我想知道是否有人有使用消费级固态硬盘(例如 Crucial/Micron 固态硬盘)的经验。
我意识到 TRIM 支持在 Linux(使用 Centos)上会是一个问题。有没有人在 Windows 7 上使用过它们来解决这个问题?
有哪些有效的方法可以对数据库操作执行编程性能测试,尤其是在数据库本身不提供专用工具的环境中?
例如,在 Google App Engine 中,整个页面加载被评估为一项操作,其中可能包括特定的数据库操作。SQLite 和其他集成数据库中也可能存在此问题。由于很难完全抽象需要测试的(等价的)选择和插入,是否有任何推荐的数据库工具来对这些类型的查询执行更彻底的诊断?
performance google-app-engine database-design performance-testing
在常规 Google App Engine 使用、polymodel 或普通“Bigtable”模型中,什么产生最佳性能?
多模型有效地在父表中创建了一个名为“类”的列,它提供了继承跟踪。而从父类继承的普通 Bigtable 创建了一个新的独立数据结构,无法查询父类并找到所有子类型类的所有子类。
MSDN 文档很难理解。
是否有任何可用于学习 SQL Profiler 的在线教程?如果可能,视频或简单的博客文章将是首选。
在BigTable的设计拒绝了许多标准的关系型模式的哲学的,明确非规范化宁愿到细微的小表的大主机。
这是一个问题的较大领域之一是多对多连接的建模。
对这些连接建模的一种方法是违反第一范式,并将所有有趣的数据放在 db.ListProperty() 中。虽然这可以从查询中进行搜索,但我尚未探讨搜索列表与拉取另一个表对性能的影响。
由于连接是不可能的,这是可以通过RelationshipProperties链接表。因此,只要付出足够的努力,就可以创建标准的交集表(具有引用两个父表的联合主键的表)。有没有人研究过各种实现的性能影响?
-编辑-
虽然文档中建议的密钥列表确实是一种方法,但我对该实现和其他实现的性能和异常率感兴趣。创建密钥的相互列表是否有用?重复获得所付出的努力值得付出代价吗?有没有更好的方法来做到这一点?
由于事务日志文件的大小(它增长到 200 GB),我不得不删除它,因为磁盘空间不足。我知道这不是一个好的做法,但无论如何之后表现非常糟糕。
有谁知道在这种情况下是否可以提高性能以及如何提高性能?