SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.12.2009 14:55:05

petroving
Участник
Зарегистрирован: 06.12.2009
Сообщений: 2

логирование посетителей

Здравствуйте,

при заходе на сайте нужно записать в таблицу IP адрес посетителя, дату и одновременно проверить был ли он уже, как лучше поступить, сделать таблицу
ip int(10) unsigned PRIMARY KEY
dt DATE
и каждый раз при заходе делать INSERT и проверять добавилась ли запись, тем самым определять был ли посетитель до этого или делать сначала SELECT и если мускуль вернул 0 записей делать уже INSERT
спасибо

Неактивен

 

#2 06.12.2009 20:27:28

savit
Завсегдатай
Зарегистрирован: 10.11.2009
Сообщений: 25

Re: логирование посетителей

а зачем ip делать первичным ключем? сделайте уникальный индекс по двум столбцам ( дата и ip ) и делайте попытку вставить запись ...

Отредактированно savit (06.12.2009 20:28:20)

Неактивен

 

#3 06.12.2009 22:32:39

petroving
Участник
Зарегистрирован: 06.12.2009
Сообщений: 2

Re: логирование посетителей

savit написал:

а зачем ip делать первичным ключем? сделайте уникальный индекс по двум столбцам ( дата и ip ) и делайте попытку вставить запись ...

а что ключ по всем столбцам даст прирост производительности?

Неактивен

 

#4 07.12.2009 01:48:04

kiligin
Завсегдатай
Зарегистрирован: 28.11.2009
Сообщений: 48

Re: логирование посетителей

вместо того чтобы делать запрос, а потом проверять сколько записей вернулась, попробуй сразу поюзать IFEXIST. если есть запись в базе действие1, нет insert.

Неактивен

 

#5 07.12.2009 10:13:20

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: логирование посетителей

+1 к решению savita smile

Прирост производительности не даст, даст атомарность (или вставилось, или нет),
если вставилось, то пользователя не было сегодня, а если ошибка — был.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson