Используя PHP5 и последнюю версию MySQL, я хочу иметь возможность отслеживать показы и клики для бизнес-записей. Мой вопрос, если бы я сам это сделал, что было бы лучшим методом для его хранения, чтобы я мог запускать отчеты? Раньше у меня была таблица с идентификатором листинга, IP-адресом пользователя, и если это был клик или показ, а также дата его отслеживания. Однако сама база данных приближается к 2 ГБ данных, и ее очень медленная часть - это довольно простой скрипт, который включает в себя показы и клики от кого-либо, включая поисковые системы, и в основном кого-либо или что-либо, что обращается к странице листинга.PHP и сохранение статистики
Есть ли api или файл там, где есть список обновления до даты, который может определить, является ли просмотр человеком фактически человеком, а не пауком, поэтому я не заполняю базу данных ненужными статистическими данными? Просто ищите предложения, просто я имею необработанную базу данных, которая получает только хиты, а затем задание cron в ночное время за день для каждого листинга для каждого ip и хранения совокупной статистики в другой таблице?
И какой тип базы данных должен быть? Innodb? MyISAM?
Очень интересный подход. Другой вопрос: как вы рекомендуете мне обращаться с людьми, которые обновляют страницу или возвращаются к списку, чтобы снова просмотреть его? Прямо сейчас ip-адрес и дата являются уникальным индексом, поэтому, если для этого показа найден уникальный индекс или нажмите «Я обновляю поле счетчика», которое показывает, что этот человек просматривал один и тот же список более одного раза. Считаете ли вы, что это хороший подход? Или я должен отказаться, когда кто-то просматривает листинг более одного раза в день? – John
@John Ну, это зависит от ваших целей. Если вам нужно знать, если какой-либо пользователь дважды нажал на одну и ту же ссылку - тогда вам нужно обновить (допустим, у вас есть поле «counter» в вашей таблице) - в этом случае вы можете использовать INSERT ... ON DUPLICATE KEY UPDATE statement , Но если вам это не нужно - тогда вам не нужно обновлять запись снова. В этом случае вы можете использовать инструкцию INSERT IGNORE. – itsmeee