对于我正在编写的一个小型 PHP 应用程序,我们需要存储大量具有哈希键的记录和一些简单的字段值('host'、'path')。例如:
'4420ffb32a' => array(
'host' => '127.0.0.1',
'path' => 'path/to/resource',
);
此类数据的最佳持久存储是什么?MySQL 会是最好的选择,还是对于如此简单的数据来说太过分了?什么会带来最好的表现?
对于我正在编写的一个小型 PHP 应用程序,我们需要存储大量具有哈希键的记录和一些简单的字段值('host'、'path')。例如:
'4420ffb32a' => array(
'host' => '127.0.0.1',
'path' => 'path/to/resource',
);
此类数据的最佳持久存储是什么?MySQL 会是最好的选择,还是对于如此简单的数据来说太过分了?什么会带来最好的表现?
简短的回答: Membase。
长答案:
您基本上有三个选择:关系数据库、文件存储或其他。
就像你说的,关系数据库肯定是矫枉过正。也就是说,如果这是一个已经有 MySQL 或其他数据库的应用程序的一部分,我会同意的。同样,文件存储有时会很方便(例如写入一堆 XML 文件),但磁盘 I/O 可能很慢。
现在在另一个类别中,您有一些很棒的 NoSQL 选项,例如CouchDB或Memcached。
如果您不太担心数据的持久性,我建议您使用 memcache。它是轻量级的,易于运行,并且有一个Memcache PHP 扩展使其易于使用。它是为这样的键值存储而设计的。
memcache 的一个缺点是,在 memcache 服务停止的那一刻,您的所有数据都会丢失。这就是Membase的用武之地。它是 memcache 的开源分支,与协议兼容,这意味着它可以与所有现有的客户端库一起使用。但是,它可以持久化您的数据并实际上提供一致性和可靠性,这是 memcache 本身无法做到的。
注意:这个答案是时代的遗物,问题本身也是如此。请不要从字面上理解。
只是为了建议一些不同的东西,redis(或者redisdb-win32,如果你在 Windows 服务器上)
CouchDB是您的答案(尽管对于您的必需品可能有点矫枉过正)..
可能不是最好的答案。但是我会将它存储到一个 mySQL 数据库中,mysql_pconnect
如果没有同时提取数据,我可能会使用它。
此处有关 pconnect 的信息:php.net
数据库的常见替代方法是纯文件,但如果我错了请纠正我,但并发文件访问可能会更慢。
祝你好运。
我会选择 MySQl,以防您将来需要升级您的应用程序。当涉及到应用程序时,最好是面向未来。