【问题标题】:Writing your own storage-system: where to start?编写自己的存储系统:从哪里开始?
【发布时间】:2010-11-07 19:11:07
【问题描述】:

阅读有关 NoSQL (http://nosql.eventbrite.com/) 的信息,该运动旨在鼓励放弃传统的关系数据库,转而支持定制的、适合应用程序的存储系统。

对尝试编写一个小型个人存储系统(用于 .net 框架)作为学习宠物项目的想法很感兴趣,您有什么建议或有用的链接?从哪儿开始?如何平衡硬盘上的内容和内存中的内容?

我认为这可能是一个了解数据库内部工作的有趣机会,但我真的缺乏它最基本的理论。 谢谢。

【问题讨论】:

    标签: c# database database-design


    【解决方案1】:

    SO 问题"Implementing a database — How to get started" 对您的问题有一些有用的答案!

    【讨论】:

    • 我只是想告诉你链接坏了。
    【解决方案2】:

    在开始之前,我建议您研究一下 SQL Server 将 XML 文件作为 BLOB 对象存储在关系数据库中的能力。也许您的存储系统不需要“从头开始”。它可以是 SQL XML 存储功能之上的混合体。

    【讨论】:

      【解决方案3】:

      这一切都取决于您正在构建的应用程序。

      例如,如果您的应用只需要保留几百个对象并以几种方式切穿它们,而不关心内容是否偶尔会损坏。您可能只使用 LINQ 来查询列表并偶尔将列表保存到磁盘。

      如果您需要任何具有神奇 ACID 属性的东西,那么它需要大量的工作。

      如果您需要支持事务的东西,那将需要大量工作。

      如果您需要了解 ANSI-SQL 的东西,您将不得不编写一个解析器,这需要大量工作。

      在开始编写任何类型的数据库之前,我认为您应该了解很多数据库理论,get a book,请阅读它。

      【讨论】:

        【解决方案4】:

        NoSQL 运动的目标是大规模系统,在关系模型真正崩溃的大小上。在开始编写自己的存储之前,我强烈建议您了解关系模型,因为它是 CS 中文档记录最好且易于理解的领域之一。从Gray's and Reuter's Transaction Processing 开始,本书解释了所有关于实现经典RDBMS 的知识。列表中的下一个应该是Readings in Database Systems,这是最相关的科学论文和文章的集合。

        【讨论】:

          【解决方案5】:

          看看 Prevayler 人所做的工作。他们观察到,如果您可以将数据放入 ram 中,大多数使用场景会显示出更好的性能,并且在没有 RDBMS 的情况下编写的代码也更少。另一方面,谷歌、亚马逊的人表明,对于大量数据,您不想使用 RDBMS。随着我们转向 64 位操作系统和具有大量内存的 pc,RDBMS 介于两难之间。

          【讨论】:

            【解决方案6】:

            虽然这是迟到的回应。在执行此操作之前,您需要考虑一些基本场景,即使您事先了解 dbo 及其引擎的工作原理。 1. 是为了重仓吗? 如果是这样,那么您需要微调页面并处理一种文件格式,该格式确实需要花费大量时间来加载和检索。

            1. 是否需要处理多个连接? 同样,页面很重要,但您可能还需要为服务或基于应用的实例创建引擎。

            2. 是用于应用程序还是用于 Web? 如果是web,那就真的用MySql或者MSSQL吧。

            不要选择内联内存作为数据库存储,因为这会使数据库的用途无效。创建数据库是为了让您可以在一段时间后释放内存并释放表对象,将内存返回给系统。如果是为了轻度使用,请创建一个简单的 XML/自定义文件数据库系统,因为您不是一次保存或更改大量数据。比这更好的是,使用非常适合该目的的 SQLite。如果是用于开源或商业用途,请不要使用内联内存,因为您不会强迫某人满足高内存要求,内存要花钱,而且有些人仍在运行 32 位操作系统。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-07-29
              • 1970-01-01
              • 1970-01-01
              • 2015-05-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多