1

我正在创建依赖于数据库的应用程序,并且我完全打算使用平面文件数据库,是否有任何严重的理由要远离这个?

我正在使用 mimesis ( http://mimesis.110mb.com ) 它比使用 mySQL 更简单,我不得不承认我没有什么经验。我想知道数据库的安全性。但文件存储为 php,它似乎是一个可靠的数据库解决方案。

我真的很喜欢备份和传输数据库的便利性,我发现使用 mySQL 更难。我看到每个人似乎都更喜欢 mySQL 方式——在查询方面它可能更快,但除此之外,还有什么理由远离平面文件 dbs 并(最终)正确学习 mysql 吗?


编辑 只是为了让人们知道,我最终选择了 mySQL,并且正在使用 CodeIgniter 框架。仍然喜欢平面文件 db,但现在已经意识到这个项目比必要的复杂得多。

4

8 回答 8

3

使用SQLite,您将获得一个具有许多 SQL 功能的数据库,但它只是一个文件。

于 2009-10-27T19:26:16.907 回答
3

大家好,我是 Mimesis 的创造者。在需要处理大量数据的情况下,关系数据库和 SQL 非常重要。平面文件是否优于关系数据库?好吧,你可以问问谷歌,因为他们的整个归档系统都可以处理平面文件,而且它是地球上最受欢迎的搜索引擎。Mimesis 与他们的系统相比吗?可能不会。

创建 Mimesis 是为了解决特定的利基问题。我只将免费网站用于我的在线活动。许多免费网站提供使用 PHP 的能力。但是,它们不提供免费的 SQL 数据库访问。因此,我需要创建一个数据库来存储数据、实现锁定并解决文件权限问题。这些是 Mimesis 的主要设计参数,它在所有这些方面都取得了成功。

如果您需要了解 Mimesis 的速度,如果您导航到第一页,它会告诉您正在查看该网站的国家/地区。这个免费数据库取自站点 ip2nation.com 并移植到 Mimesis ffdb。它有数百个甚至数千个条目。

此外,主页上的点击计数器已经跟踪了超过 7000 名访问者。这些是 UNIQUE 访问,这意味着脚本必须搜索数据库以查看正在访问的 IP 地址是否已经存在,并且还执行总 IP 计数。

如果您注意到主页加载得非常快,并且它在后端运行了两个相当密集的 Mimesis 数据库脚本。Mimesis 存储数据的方式是为了加快读写过程以及翻译过程。大多数 ffdb 示例脚本或其他 ffdb 脚本使用简单的 CVS 文件或其他一些此类结构来存储数据。Mimesis 实际上在某些级别解释二进制数据以增强其功能。Mimesis 在某种程度上是平面文件数据库和关系数据库的混合体。

大多数其他 ffdb 脚本涉及每次更新时重写 COMPLETE 文件。Mimesis 不这样做,它只重写结构文件并更新实际的行内容。因此,即使确实发生错误,您也只会丢失添加的新数据,而不会丢失任何旧数据。Mimesis 也保留了它的历史。除非刷新表,否则行之前的数据仍包含在其中。

我可以继续讨论所有的特性,但这并不是“模仿是有史以来最伟大的数据库”的咆哮。此外,它旨在让人们看到 SQL 并不是唯一可用的技术这一事实,并且考虑到它们更专业,当给予适当的开发范式时,平面文件优于关系数据库。

万岁的平面文件和勇敢的编码人员随之而来的头痛。

于 2010-04-12T18:35:08.757 回答
1

如果您只需要一个平面文件结构,答案是“很好”。一项测试:一个简单的电子表格能满足所有需求吗?如果没有,您需要一个关系结构,而不是平面文件。

如果您不确定,也许您可​​以启动平面文件。SQLite 是一个很棒的入门应用程序。

如果你在这个过程中发现得太远,那么知道你做出了错误的选择是不好的。但是,如果您了解关系结构的重要性,并在需要时尽早升迁,那么您就可以了。

于 2009-10-27T19:32:20.327 回答
1

我真的很喜欢备份和传输数据库的便利性,我发现使用 mySQL 更难。

使用另一个答案中提到的SQLite 。只需备份一个文件,或将 MySQL 数据库定期转储到 SQL 文件。这是一个相对简单的事情。

我看到每个人似乎都更喜欢 mySQL 方式——而且在查询方面它可能更快

速度绝对是一个考虑因素。数据库往往要快得多,因为数据组织得更好。

除此之外,还有什么理由远离平面文件 dbs 并(最终)正确学习 mysql 吗?

使用数据库解决方案肯定有很多理由,但对于平面文件仍有争议。学习“通常”使用的东西之外的东西总是好的。大多数决定取决于应用程序。您将拥有多少并发用户?您需要交易支持吗?

于 2009-10-27T19:37:49.193 回答
1

想通知 Mimesis 已经从原来的 URL 移到了http://mimesis.site11.com/

此外,我正在将 Mimesis 的重点从 ffdb 转移到键值存储。考虑到我存储的信息类型和我用来检索它的方法,这更明智。Mimesis 的编码中也存在严重错误(我已经修复了)。但是,我仍处于新键值存储类型的测试阶段。我也被其他事情牵着鼻子走。锁定也从使用文件创建更改为作为互斥机制的目录创建。

于 2011-02-11T18:56:29.217 回答
0

互操作性。MySQL 基本上可以通过任何重要的语言进行交互。Mimesis 不太可能在 PHP 之外使用。

当您尝试使用分析器或从外部修改数据时,这变得很重要。

于 2009-10-27T19:27:18.167 回答
0

您还可以查看http://lukeplant.me.uk/resources/flatfile/以获取 PHP 平面文件包。

于 2009-10-27T19:37:28.867 回答
0

使用平面文件的问题在于,为了调整情况以进行进一步开发,您必须更改大量代码以改善系统的基础。然而,如果它是一个纯 SQL 系统,那么将来几乎不需要修改即可继续进行。

于 2009-10-27T20:09:10.173 回答