Предположим, вы были невежливы, и аналитика Google не соответствовала вашим потребностям -
Вы можете создать простой API для http://www.mywebstats.com и запускать cron каждые 5 минут, чтобы перейти к получающему скрипту.Таким образом, вы не будете звонить на лету при каждой загрузке страницы.
Ваш локальный скрипт будет делать именно то, что вы делаете выше, за исключением внешнего местоположения.Ваш локальный скрипт сбрасывает пользовательские данные в очередь, которая может быть сгруппирована по токену, информации о сеансе или любым другим данным для отслеживания их пути просмотра, поведения, чего угодно.Когда вызывается cron, он выбирает последние 100 записей и отправляет их в ваш API.
Это должно иметь смысл для любого, кто использовал cron ранее.
Что касается хранения данных.Это зависит от того, как вы собираетесь взаимодействовать с данными.Myisam звучит так, как будто бы оно отлично послужило вашим потребностям.InnoDB будет просто выбором для вас на данный момент.Если вы используете какой-то ORM для получения записей, то вам, возможно, придется пойти по этому пути.Myisam для полного совпадения текста, если вы чувствуете необходимость запускать поисковые запросы вручную на вашей статистике.Вид зависит от того, что вы планируете делать.Даже если вы делали данные общедоступными и потенциально сталкивались с сообщениями о миллионах записей по вызову, вы все равно можете оптимизировать выходные данные, которые будут скомпилированы при получении, когда пользователям будет предоставлен кэшированный отчет для простоты и удобства обработки.кратко - собирать данные локально и использовать cron, чтобы отправить их на ваш сайт статистики.Myisam хорош для того, как это выглядит.Мое мнение таково.
ОБНОВЛЕНИЕ
Что касается вашего вопроса - в Google Analytics есть API, который вы можете использовать для извлечения данных: http://code.google.com/apis/analytics/docs/gdata/home.html
Я никогда не взаимодействовал с ним, но, скорее всего, он имеет то, что вы могли искать.
Что касается взаимодействия с отдельными БД - не обязательно.Вы могли бы иметь одну БД для любого количества сайтов, но это не имело бы большого смысла.Я упоминаю о том, что похоже на 2 отдельные БД, потому что ваш вопрос выглядит так, как будто вы вызываете отдельный сайт, который предназначен для выполнения только 2 вещей - записи статистических данных и предоставления статистических данных.Для этой цели я бы определенно сказал, что вы должны разделить это на две базы данных.Особенно, если есть несколько сайтов, вызывающих API.
Ваши счетчики посещений также могут быть легко записаны на кроне.На вашем сайте статистики будет отдельное задание cron, которое вычисляет недавно обновленные страницы и обновляет простую строку json, сохраненную в связи с соответствующей страницей.Таким образом, ваш запрос - легкий вес.Оттуда вы можете либо вызвать счетчик на лету, если вы хотите избежать другого задания cron - ИЛИ - вы можете запустить дополнительный cron, который извлекает последние результаты счетчика страниц и сохраняет их локально или записывает их в плоский текст для дальнейшего использованиякэширование.
Следует помнить, что термин cron не предназначен для того, чтобы быть страшным.Если ваш хост позволяет вам настроить их, они очень удобны для базового обслуживания и улучшения производительности ... при условии, что вы делаете их правильно.Они все еще должны быть структурированы логически, чтобы вы не заканчивали писать сценарии, которые выполняются в течение 5 минут или времени ожидания.Но это другая история.Надеюсь, вы знаете, что делаете, чтобы понять, о чем я.