【问题标题】:Flatfile Management in PHPPHP 中的平面文件管理
【发布时间】:2011-12-27 15:24:14
【问题描述】:

平面文件数据库的长度有什么限制?如何控制平面文件页面上的条目数?

【问题讨论】:

  • 还没有,但我必须进入它!

标签: php flat-file


【解决方案1】:

您只会受到服务器硬盘驱动器上的可用空间量和驱动器上使用的文件系统的限制。例如,如果它是具有 4KiB 块大小的 ext3,那么您将被限制为 16TiB。在平面文件中创建数据库时,您是数据库格式化方式的设计者。大多数人按行输入,有些人按空格输入。这将取决于您和您的需求。请记住,尽管对于更大的数据库,任何 SQL 服务器(例如 MySQL、MSSQL、PostgreSQL 等)都会为您提供更好的性能。

以下是使用平面文件作为数据库的示例: http://www.designdetector.com/archives/04/10/FlatFileDatabaseDemo.php#demo

【讨论】:

  • 如果您希望您的数据库相当大,那么平面文件不是要走的路。文件大小与加载页面所需的时间之间存在直接关系。
  • 我需要的数据库仅用于当地城镇地区的小需求。我只是关心大小的问题。您提供了一个很好的答案和一个很好的参考点的链接。伟大的工作 - 谢谢。
  • 没问题,我还想向您建议使用 XML 的选项,因为它将是一个小型数据库。在查看原始文件时,XML 将使数据库更易于阅读。它也会为你做很多工作。例如,假设您使用竖线字符来分隔列...好吧,如果用户输入竖线字符,您必须以某种方式对其进行转义,否则会弄乱您的数据库。 XML 会为您解决这个问题。示例:http://www.w3schools.com/php/php_xml_simplexml.asp
  • 我不知道我是否会使用 XML 文件作为 Database 说。 XML 文件非常适合处理少量数据并使用 XPath 之类的东西来获取其中的一部分,但是一旦数据变得太大,您将不得不废弃它并重新开始。考虑使用SqlLite,因为它是基于文件的数据库。这样做的好处是,当您确实想要迁移到成熟的数据库时,您可以非常轻松地迁移到 MysqlPostgreSQL 或任何 PDO 支持的数据库后端。那是我的 2 cp。
  • 这又带来了尺寸问题。少量数据有多少?小型社区城镇中的大多数应用程序可能不需要完整的 MySql。我认为,从经济角度来说,Flatfile 可以为我服务!有时小而美。
【解决方案2】:

平面文件数据库的限制取决于服务器的文件系统。如今,您可以使用千兆字节的大型平面文件数据库。但是请记住,当您对此类“数据库”进行读写时,而其他人也在对它们进行读取和/或写入时,会出现“锁定”问题。由于“竞争条件”出错,您不会是第一个丢失此类平面文件数据库中所有数据的人。

SQLite2/SQLite3 和 MySQL 都以自己的方式处理此类问题,并且大多数情况下,它们比使用 PHP 的“flock”等锁定函数的平均 fread/fwrite 实现更安全(因为它只是对某些人的“建议” linux系统,可能根本无法工作)。这就是人们选择使用此类数据库服务器的原因。它让您免去担心锁定问题的烦恼,并为您提供一整套数据库功能供您学习和使用! ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多