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

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

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


编辑只是为了让人们知道,我最终与MySQL一起使用,并使用CodeIgniter框架。仍然喜欢平面文件数据库,但现在意识到对于这个项目来说它比必要的要复杂得多。

有帮助吗?

解决方案

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

如果您不确定,也许您可​​以开始平面文件。SQLite 是一款非常适合入门的应用程序。

如果你在这个过程中发现自己做出了错误的选择,那就不好了。但是,如果您了解关系结构的重要性,并在需要时尽早扩大规模,那么就可以了。

其他提示

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

问候,我是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也保持着它的历史。除非刷新表,否则行先前包含的数据仍然包含在内。

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

万岁平板文件以及勇于接下来头痛的编码员。

  

我真的很喜欢备份的方便性   和运输数据库   我发现mySQL更难了。

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

  

我看到每个人似乎都更喜欢   mySQL方式 - 很可能是   在查询方面更快

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

  

除此之外是有任何理由的   远离平面文件dbs和   (最后)正确学习mysql?

确实有很多理由使用数据库解决方案,但是有些参数可以用于平面文件。学习除了“通常”之外的东西总是好的。使用。 大多数决策取决于应用程序。您将拥有多少并发用户?你需要交易支持吗?

想要通知Mimesis已从原始网址转移到 http://mimesis.site11.com/

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

互操作性。 MySQL可以基本上与任何重要的语言接口。 Mimesis不太可能在PHP之外使用。

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

您还可以查看 http://lukeplant.me.uk/resources/flatfile/ 用于PHP Flatfile包。

go flatfile的问题在于,为了进一步开发调整情况,您必须更改大量代码以改进系统的基础。然而,如果它是一个纯SQL系统,那么将来几乎不需要修改就可以了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top