У нас есть приложение для аналитики, которое позволяет пользователям запускать несколько разных отчетов. У нас есть одна базовая настройка базы данных master-slave.Хранение посетителей сайта без завершения соединений MySQL
Одна из вещей, которые мы отслеживаем, - это посетители на наших сайтах наших клиентов. Каждый раз, когда посетитель попадает на сайт наших клиентов, мы пишем различную информацию в нашу основную базу данных. Проблема в том, что у нас заканчиваются соединения с базами данных MySQL во время пикового трафика (обычно вечером). Мы знаем, что нам нужно каким-то образом подготовить данные о посетителях. Однако одна из вещей, которые мы используем для продажи этого продукта, заключается в том, что вы можете видеть данные посетителя, пока они находятся на веб-сайте. Мы могли бы позволить короткую задержку (1-2 минуты) между посетителем, находящимся на веб-сайте, и данными, доступными для отчетов.
Каков наилучший способ представления данных посетителя? Есть ли другой способ сделать это масштабируемым?
Запрос, который вызывает блокировками:
SELECT VisitID,VistSourceID
FROM visitorvisits
LEFT JOIN visitornumbers
ON VinuVlviID=VlviID
WHERE vistNosID='12345' AND
VistCampaignID='1' AND
('2013-04-03 14:30:48' >= DATE_ADD(VistDateStart, INTERVAL VistTimeStart HOUR_SECOND))
AND ('2013-04-03 14:30:48' <= DATE_ADD(VistDateEnd, INTERVAL VistTimeEnd HOUR_SECOND)
OR VistStatusCode='1')
expalin на этом stament является:
+----+-------------+--------------------------+--------+-----------------------------------------------------------------------------------+----------------+---------+----------------------------------------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------------------+--------+-----------------------------------------------------------------------------------+----------------+---------+----------------------------------------------+------+-------------+
| 1 | SIMPLE | visitornumbers | ref | idx_vistNosID,idx_visitNosVisitID | idx_vistNoID | 4 | const | 4527 | Using where |
| 1 | SIMPLE | visitorvisits | eq_ref | PRIMARY,idx_VistCampaignID,idx_VistStatusCode,idx_VistCampaignID_VistDateStart_VistVistorID | PRIMARY | 4 | mhdblive.visitorvisits.visitNosVisitID | 1 | Using where |
+----+-------------+--------------------------+--------+-----------------------------------------------------------------------------------+----------------+---------+----------------------------------------------+------+-------------+
Ваш сайт написан на? PHP? Рубин? Ява? –
Наше приложение написано на PHP. – mh1