Небольшие / эффективные опции базы данных PHP - PullRequest
0 голосов
/ 06 июля 2010

Вопрос субъективный, я знаю, но я рассчитываю исходящие клики для очень специфической части веб-сайта, и мне просто нужно вести подсчет исходящих кликов по ссылке и за день. Я знаю, что мог бы использовать MySQL для этого, но мне интересно, есть ли что-то меньшее / более эффективное для этого приложения.

Я управляю своим собственным сервером на slicehost под управлением Ubuntu 9.10 с Apache / 2.2.12 и могу что-то установить, однако есть ли что-то маленькое и легко добавляемое для небольших приложений, подобных этому?

Возможно, что-то, что пишет в свой собственный файл на сайте.

Разъяснение: этот вопрос касается эффективности кода, необходимого для простой настройки таких мелких вещей, как эта. У меня нет и не предвидеть проблем с производительностью. Мне любопытно, что другие люди используют для таких вещей. Может быть, это MySQL - я здесь, чтобы учиться.

Ответы [ 5 ]

2 голосов
/ 06 июля 2010

Вы можете сделать меньше.Вы можете сделать более эффективным.Вы не собираетесь получать оба в одном пакете.

  • SQLite меньше и содержится в одном файле.Это также существенно медленнее, чем MySQL.
  • Firebird аналогично содержится в одном файле.Я считаю, что это также хуже MySQL.
  • Oracle дорогой и даже отдаленно не «маленький».Это может быть очень эффективно.
  • PostgreSQL - вариант, но опять же не маленький.Он также работает иначе, чем MySQL, и, как известно, его сложнее администрировать.

На самом деле, я с Питером Бэйли по этому вопросу.Весь этот вопрос пахнет предварительной оптимизацией.У вас действительно есть проблема с производительностью, которая оправдывает использование дополнительной базы данных?

2 голосов
/ 06 июля 2010

Вы можете использовать SQLite , но, если честно, весь этот вопрос пахнет предварительной оптимизацией .

1 голос
/ 06 июля 2010

Вы можете использовать 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}");
0 голосов
/ 06 июля 2010

Просто используйте текстовый файл. fopen / fwrite / fclose

0 голосов
/ 06 июля 2010

Поскольку вы параметризовали свою архитектуру, используя эффективность кода в качестве показателя, а не производительность под нагрузкой (или чем-то еще), просто используйте любую технологию базы данных, с которой вы наиболее знакомы.Это значительно сократит время написания и отладки кода.

Конечно, вы также можете воспользоваться этой возможностью, чтобы изучить новую технологию баз данных.Если это так, то выясните, что может сделать вас более ценным для вашего нынешнего или будущего работодателя (ов) (т. Е. Они могут искать другую технологию для нового продукта, который вы можете стать внутренним гуру), какие новые базы данных "на очереди" и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...