Субъективный вопрос, я знаю, но я рассчитываю исходящие клики для очень определенной части веб-сайта, и мне просто нужно сохранить количество исходящих кликов на ссылку и в день. Я знаю, что я мог бы использовать MySQL для этого, но мне интересно, есть ли что-то меньшее/более эффективное для этого приложения.
Я управляю своим собственным сервером на slicehost, работающем под управлением Ubuntu 9.10 с Apache/2.2.12, и могу что-то установить, однако есть ли что-то маленькое и легко заносится для небольших приложений вроде этого?
Возможно, что-то, что пишет ему собственный файл на сайте.
Разъяснение: этот вопрос касается эффективности кода, необходимого для простой настройки таких мелочей. Я не имею и не ожидаю проблем с производительностью. Мне любопытно, что другие люди используют для подобных вещей. Может быть, это MySQL - я здесь, чтобы учиться.
Вы можете делать меньше. Вы можете сделать более эффективным. Вы не собираетесь получать оба в одном пакете.
На самом деле, я с Питером Бейли. Весь этот вопрос пахнет предварительной оптимизацией. У вас действительно есть проблема с производительностью, которая оправдывает использование дополнительной базы данных?
Вы можете использовать SQLite, но, честно говоря, весь этот вопрос воняет до оптимизации.
Вы можете использовать Memcached в качестве кеша в памяти для вашего счетчика.
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->add('counter', 0); // no-op if key already exists
$m->increment('counter');
Затем вы запускаете еще один script оффлайн каждую минуту или около того, чтобы прочитать счетчик попаданий, добавить его в постоянную базу данных и reset счетчик к нулю.
<?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}");
Просто используйте текстовый файл. fopen/fwrite/fclose
Поскольку вы параметризировали свою архитектуру, используя эффективность кода как показатель, а не производительность при загрузке (или что-то еще), просто перейдите по любой технологии баз данных, с которой вы наиболее знакомы. Это значительно сократит время написания кода и времени отладки.
Конечно, вы также можете воспользоваться этой возможностью, чтобы изучить новую технологию баз данных. Если это произойдет, то узнайте, что сделало бы вас более ценными для вашего нынешнего или будущего работодателя (ов) (т.е. Они могли бы смотреть на другую технологию для нового продукта, который вы можете стать внутренним гуру), какие новые базы данных "вверх и вперед" и т.д.