Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как удалить запись без вмешательства в таблице через несколько дней?
 
 автор: xpom   (22.11.2011 в 01:13)   письмо автору
 
 

Подскажите, как можно удалить запись в таблице через несколько ней без вмешательства? Или если это под паролем вход, можно перед входом пользователя сделать проверку по дате? И если прошло дней пять например, то удалять...по другому никак?

  Ответить  
 
 автор: cheops   (22.11.2011 в 01:17)   письмо автору
 
   для: xpom   (22.11.2011 в 01:13)
 

1. Какая версия СУБД используется? Выше или ниже 5.1 (в ней можно задействовать планировщик заданий)?
2. Таблица часто подвергается изменениям? Нельзя задействовать триггер?

  Ответить  
 
 автор: xpom   (22.11.2011 в 13:57)   письмо автору
 
   для: cheops   (22.11.2011 в 01:17)
 

на локальной машине использую версию 5.0.45 MySQL на хостинге возможно будет новее..

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

  Ответить  
 
 автор: xpom   (22.11.2011 в 14:02)   письмо автору
 
   для: xpom   (22.11.2011 в 13:57)
 

а как трригером это можно сделать?
или трригером не получится?

  Ответить  
 
 автор: cheops   (22.11.2011 в 15:04)   письмо автору
 
   для: xpom   (22.11.2011 в 14:02)
 

Триггер, конечно, менее удобен, так как вы сможете привязать его только на INSERT/UPDATE/DELETE-запросы. Они у вас могут возникать не так часто и не в то время, как вам нужно. Или наоборот возникать слишком часто, а вам придется лопатить всю таблицу на каждый чих... планировщик заданий в этом плане гораздо более удобен.

  Ответить  
 
 автор: xpom   (22.11.2011 в 15:25)   письмо автору
 
   для: cheops   (22.11.2011 в 15:04)
 

понятно..ну а если как я вариант думал, когда пользователь под свои логином заходит в определенную вкладку и тогда проверяется по дате, если старые данные имеются то удалить их, это сильно будет загружать работу?
Удаление я это думаю сделать, чтобы разгрузить таблицу, будет много строк и если много уже не нужных будет медленнее запросы выполнятся?

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

  Ответить  
 
 автор: cheops   (22.11.2011 в 15:38)   письмо автору
 
   для: xpom   (22.11.2011 в 15:25)
 

Да неплохой вариант, только следует иметь в виду еще вот что.
1. Чем больше у вас будет таблица, тем медленнее будет выполняться операция DELETE.
2. Удаление один раз большого количества записей в любом случае быстрее, чем удаление небольшого количества записей большим количеством DELETE-запросов.
3. На момент удаления таблица блокируется. Если операция длительная, выстраивается большая очередь из желающих обратиться к таблице - все они держат оперативную память.
4. Пользователи имеют возможность приходить на сайт в часы пик, когда и так нагрузка велика - затевать в это время удаления, тем более массовые - самоубийство.

PS Просчитать заранее все довольно сложно, как правило, приходится чутко следить за системой и её реакцией. В общем при проектировании системы заложите в неё (если время и бюджет позволяет) возможность изменения механизмов удаления сообщений. Проблемы новой системы, как правило, в корне отличаются от проблем системы, обремененной тяжелой многолетней базы данных.

  Ответить  
 
 автор: xpom   (22.11.2011 в 19:30)   письмо автору
 
   для: cheops   (22.11.2011 в 15:38)
 

Тогда добавим проверку, запрос SELECT (он не блокирует таблицу?) и проверим, если у пользователя есть старые сообщения и только в тот момент, когда пользователь оставляет сообщение, тогда удаляем старые записи...

Я думаю потом, если что мы эту часть сможем заменить какой то другим вариантом, если что то будет плохо работать

  Ответить  
 
 автор: cheops   (22.11.2011 в 21:03)   письмо автору
 
   для: xpom   (22.11.2011 в 19:30)
 

>SELECT (он не блокирует таблицу?)
Нет, не блокирует.

>проверим, если у пользователя есть старые сообщения и только в тот момент, когда
>пользователь оставляет сообщение, тогда удаляем старые записи...
Можно, кстати, добавлять флаг в какое-нибудь скрытое поле формы добавления сообщения (если, она на этой же странице).

  Ответить  
 
 автор: xpom   (23.11.2011 в 00:45)   письмо автору
 
   для: cheops   (22.11.2011 в 21:03)
 

тоже вариант

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования