Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];

Вниз

[mysql] Лог скачиваний   Найти похожие ветки 

 
Kerk ©   (2007-02-17 16:10) [0]

Нужно подсчитывать количество скачиваний файлов. С одного айпи засчитывается только одно скачивание конкретного файла.

Нужно оптимизировать процесс с точки зрения нагрузки на сервер и быстродействия.

Вижу такие варианты?

I
0) есть табличка DOWNLOADS (ID, FILE_ID, IP)
1) запрос юзером uIP файла uFILE_ID
2) select * from DOWNLOADS where IP=uIP and FILE_ID=uFILE_ID
2а) если вернуло 0 строк, то insert ....
3) отдать файл

II
0) есть таблички DL_COUNT (ID, FILE_ID, COUNT) и DL_LOG (ID, FILE_ID, IP)
1) запрос юзером uIP файла uFILE_ID
2) insert into DL_LOG...
3) отдать файл
раз в N минут:
4) select DISTINCT * from DL_LOG
5) соответствующе проинкриментировать данные в DL_COUNT

III
0) есть табличка DOWNLOADS (ID, FILE_ID, IP) c уникальным ключем на поля (FILE_ID, IP)
1) запрос юзером uIP файла uFILE_ID
2) insert into DOWNLOADS .... тупо игноря ошибку unique key violated (или как там?) в случае чего
3) отдать файл юзеру

IV
еще вариант аналогичный II, но DL_LOG заменить на текстовый лог

Какой вариант предпочтительнее? Может еще есть варианты?


 
Johnmen ©   (2007-02-17 19:04) [1]

III



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.066 c
1-1173602376
Makhanev Alexander
2007-03-11 11:39
2007.05.06
Диалог выбора пользователя....


1-1173444096
ElectriC
2007-03-09 15:41
2007.05.06
Липкие диалоги


4-1165861561
Ihtiandr
2006-12-11 21:26
2007.05.06
Функция, изменяющая расскладку клавиатуры


10-1132560120
George_Debug
2005-11-21 11:02
2007.05.06
Как вытащить формулу из Excel


2-1176646018
Ezorcist
2007-04-15 18:06
2007.05.06
WinExec возвращает 33





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский