Поля базы данных для таблицы веб-статистики - PullRequest
1 голос
/ 08 августа 2011

Мне нужен совет о том, какие поля базы данных я должен создать для скрипта, который записывает статистику посетителей.

Пока у меня есть

ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
os varchar(10) default NULL,
time datetime NOT NULL default '0000-00-00 00:00:00',
ip varchar(40) default NULL,
host varchar(150) default NULL,
browser varchar(50) default NULL,
os varchar(20) default NULL,
referrer text,
search text,
language varchar(5) default NULL,
screenres varchar(15) default NULL,
PRIMARY KEY (ID),
KEY time (time)

По сути, я хочу записывать как можно больше данных для каждого посещения, но в то же время поддерживать быстрый доступ к таблице, поскольку в ней будет много записей ...

Как вы думаете, следует ли хранить браузер os + в одном поле в необработанном формате (значение $_SERVER['HTTP_USER_AGENT']) и определять ОС и браузер на выходе?

Ответы [ 2 ]

0 голосов
/ 08 августа 2011

По моему мнению, "держать (...) быстрый доступ" и слово "таблица" не умещаются в одном предложении. Просто, потому что регистрация посещений БД всегда медленна по отношению к любому выделенному методу регистрации.

Лучший способ - использовать встроенное ведение журнала для вашего скриптового движка, например, syslog.

Полагаю, вы используете PHP, поэтому наилучших результатов можно легко достичь с помощью простых вызовов fopen () flock () fwrite (). Затем - вы можете просто регистрировать почти ВСЕ о своем посетителе: куки, получить, разместить, сеанс, весь массив серверов (которые просто содержат поля, такие как реферер или ip). Также полезно регистрировать время выполнения скрипта и ошибки скрипта, если таковые имеются.

Что касается меня, я использую PHP Log2Files Advanced Logger , который регистрирует как текст или как двоичный файл - и это действительно самое быстрое решение:)

0 голосов
/ 08 августа 2011

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

  1. Для чего все это будет использоваться?

  2. Будет ли регистрироваться каждая посещенная страница или только начальная «целевая страница» посетителя?

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

Что касается скорости его хранения, то это во многом будет зависеть от того, сколько посетителей вы ожидаете в течение определенного периода времени.Если у вас есть такая фигура, вы можете увидеть, как многие люди заходят на ваш сайт, и в то же время видят, сколько времени вам требуется, чтобы получить узкое место.

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