На всякий случай, если вам нужно отличить реальных пользователей от ботов, вот простое решение: используйте javascript для отправки отчетов на сервер.
Допустим, у вас есть ссылка, и вы хотите отслеживать, когда она нажата. Затем добавьте обработчик onclick, который отправит достойный отчет на сервер. Вот пример:
<a href="/somepage" onclick="track('click', this.href); return true;">Some page</a>
Функция трека будет выглядеть так:
function track(action, data) {
var Img = new Image();
Img.src = '/track.php?action=' + action + '&data=' + data;
}
Таким образом, в этом случае, когда пользователь щелкает ссылку, информация об этом щелчке будет отправлена на сервер с помощью этого фрагмента кода JavaScript. Боты не могут запускать JavaScript, поэтому они не будут засчитаны. Однако есть один недостаток: если пользователь отключил JavaScript в своем браузере, ваш скрипт отслеживания не будет учитывать такого пользователя. Очевидно, вам нужно реализовать скрипт track.php для хранения данных.
Что касается вашего вопроса по MySQL, я бы выбрал MyIsam, так как он кажется более терпимым ко многим вставкам. Кроме того, вы можете посмотреть на оператор INSERT DELAYED, и ваша идея о ночных заданиях cron кажется мне разумной. Вы также можете разделить таблицу статистики по дням, неделям или месяцам.