【发布时间】:2011-12-27 15:24:14
【问题描述】:
平面文件数据库的长度有什么限制?如何控制平面文件页面上的条目数?
【问题讨论】:
-
还没有,但我必须进入它!
平面文件数据库的长度有什么限制?如何控制平面文件页面上的条目数?
【问题讨论】:
您只会受到服务器硬盘驱动器上的可用空间量和驱动器上使用的文件系统的限制。例如,如果它是具有 4KiB 块大小的 ext3,那么您将被限制为 16TiB。在平面文件中创建数据库时,您是数据库格式化方式的设计者。大多数人按行输入,有些人按空格输入。这将取决于您和您的需求。请记住,尽管对于更大的数据库,任何 SQL 服务器(例如 MySQL、MSSQL、PostgreSQL 等)都会为您提供更好的性能。
以下是使用平面文件作为数据库的示例: http://www.designdetector.com/archives/04/10/FlatFileDatabaseDemo.php#demo
【讨论】:
Database 说。 XML 文件非常适合处理少量数据并使用 XPath 之类的东西来获取其中的一部分,但是一旦数据变得太大,您将不得不废弃它并重新开始。考虑使用SqlLite,因为它是基于文件的数据库。这样做的好处是,当您确实想要迁移到成熟的数据库时,您可以非常轻松地迁移到 Mysql、PostgreSQL 或任何 PDO 支持的数据库后端。那是我的 2 cp。
平面文件数据库的限制取决于服务器的文件系统。如今,您可以使用千兆字节的大型平面文件数据库。但是请记住,当您对此类“数据库”进行读写时,而其他人也在对它们进行读取和/或写入时,会出现“锁定”问题。由于“竞争条件”出错,您不会是第一个丢失此类平面文件数据库中所有数据的人。
SQLite2/SQLite3 和 MySQL 都以自己的方式处理此类问题,并且大多数情况下,它们比使用 PHP 的“flock”等锁定函数的平均 fread/fwrite 实现更安全(因为它只是对某些人的“建议” linux系统,可能根本无法工作)。这就是人们选择使用此类数据库服务器的原因。它让您免去担心锁定问题的烦恼,并为您提供一整套数据库功能供您学习和使用! ;)
【讨论】: