小/高效的PHP数据库选项

时间:2010-07-06 15:58:01

标签: php mysql database

主观问题,我知道,但我在计算网站特定部分的点击次数,而我只需要保持每个链接和每天的点击次数。我知道我可以使用MySQL,但我想知道这个应用程序是否有更小/更高效的东西。

我在使用Apache / 2.2.12运行Ubuntu 9.10的slicehost上管理我自己的服务器并且可以安装一些东西,但是,对于像这样的小型应用程序,是否存在小而且容易丢弃的东西?

也许是在网站内写入自己文件的东西。

澄清:这个问题是关于简单地设置像这样的小事所需的代码效率。我没有也没有预料到性能问题。我很好奇其他人用来做这样的事情。也许是MySQL - 我在这里学习。

5 个答案:

答案 0 :(得分:2)

你可以使用SQLite但老实说,这整个问题充满了pre-optimization

答案 1 :(得分:2)

你可以做得更小。你可以做得更有效率。你真的不会把它们放在同一个包里。

  • SQLite较小,包含在一个文件中。它也比MySQL快得多。
  • Firebird同样包含在一个文件中。我相信它也会落后于MySQL。
  • Oracle价格昂贵,甚至远程“小”。它可以非常有效。
  • PostgreSQL是一个选项,但同样不小。它的处理方式与MySQL不同,并且知道管理起来更复杂。

真的,我和Peter Bailey在一起。整个问题充满了预优化。您是否确实存在使用其他数据库的性能问题?

答案 2 :(得分:1)

您可以将Memcached用作点击计数器的内存缓存。

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('counter', 0); // no-op if key already exists
$m->increment('counter');

然后你会每隔一分钟左右运行另一个脚本来读取命中计数器,将它添加到持久数据库,并将计数器重置为零。

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$count = (int) $m->get('counter');
$m->set('counter', 0);

$pdo->exec("UPDATE mytable SET counter = counter + {$count}");

答案 3 :(得分:0)

由于您已使用代码效率作为度量而非负载(或其他)下的性能来参数化您的体系结构,因此请使用您最熟悉的任何数据库技术。这将大大减少代码编写和调试时间。

当然,您可能也想借此机会学习一种新的数据库技术。如果是这种情况,那么找出什么会让你对你现在或将来的雇主更有价值(也就是说,他们可能正在寻找一种新产品的不同技术,你可以成为内部的大师)什么新的数据库是“即将到来”等等。

答案 4 :(得分:0)

只需使用文本文件即可。 fopen / fwrite / fclose