对于我正在编写的小型PHP应用程序,我们需要存储大量具有哈希键的记录,以及一些简单的字段值('host','path')。例如:
'4420ffb32a' => array(
'host' => '127.0.0.1',
'path' => 'path/to/resource',
);
这样的数据的最佳持久存储是什么? MySQL是最好的选择,还是对于这样简单的数据有点过分?什么会带来最佳表现?
答案 0 :(得分:12)
简答: Membase。
答案很长:
您基本上有三个选项:关系数据库,文件存储或其他。
就像你说的那样,关系数据库肯定是矫枉过正的。也就是说,如果这是已经有MySQL或其他数据库的应用程序的一部分,我会继续这样做。同样,文件存储有时也很方便(例如写入一堆XML文件),但磁盘I / O可能很慢。
现在,在其他类别中,您有一些很棒的NoSQL选项,例如CouchDB或Memcached。
如果您不太担心数据的持久性,我建议使用memcache。它重量轻,易于运行,并且Memcache PHP extension可以轻松使用它。这是为了这样的键值存储。
memcache的一个缺点是,memcache服务停止的第二个数据都会丢失。这就是Membase的用武之地。它是一个开源的memcache分支,它与协议兼容,这意味着它可以与所有现有的客户端库一起使用。但是,它可以持久保存您的数据并实际提供一致性和可靠性,这是memcache无法独立完成的。
注意:这个答案是当时的遗物,问题本身也是如此。请不要按字面意思理解。
答案 1 :(得分:5)
只是建议不同的内容,redis(或redisdb-win32,如果您在Windows服务器上)
答案 2 :(得分:4)
CouchDB是你的答案(虽然你的必需品可能有点矫枉过正)..
答案 3 :(得分:2)
奇怪没有人提到Flintstone直到现在。
另一个不错的选择是Doctrine。
答案 4 :(得分:1)
可能不是最好的答案。但我会将它存储到mySQL数据库中,如果没有同时提取数据,可能会使用mysql_pconnect
。
有关pconnect的信息:php.net
数据库的一个常见替代方法是普通文件,但如果我错了,请纠正我,但是文件访问速度可能较慢。
祝你好运。答案 5 :(得分:1)
要为已经提到的内容添加更多内容,PHP本身支持
对于后者,有一个nice article by Johannes Schlüter。
答案 6 :(得分:0)
我会选择MySQl,以防您将来需要升级您的应用程序。在应用程序方面,最好是未来的证据。