|
0 Всего найдено: 4
mdova
Сообщение
17/03/2012 08:57
Копия темы
Как удалить старые данные из MySQL допустим раз в 3 месяца? эти стили слишком расширяли блоги и они ломались, поэтому пока закомментил--> Приветствую. Есть база данных, часто наполнение и размер будет расти стремительно... Поэтому надо подумать о её очистке, от старых объявлений заранее. Не обязательно автоматически, можно и в ручную, запросом например.. Только вот каким?:) Я думаю скорее всего по дате можно определить старое объявление, и удалить допустим те которым более 3-х месяцев. Нужен только волшебный запрос... Пока нарыл только это mysql_query ("DELETE FROM имя_таблицы WHERE UNIX_TIMESTAMP() UNIX_TIMESTAMP(date) > 900"); время в секундах. так мы удалим записи которые были записаны раньше чем какое-то время назад.
Не совсем то что надо, может получится сделать как я объяснил... Заранее спасибо всем за советы и участие! Вот структура и содержимое таблички Adverts, для наглядности: -- -- Структура таблицы `adverts` -- CREATE TABLE IF NOT EXISTS `adverts` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `id_category` smallint(3) unsigned NOT NULL, `title` tinytext, `text` text NOT NULL, `date` int(10) unsigned NOT NULL, `price` int(10) unsigned DEFAULT NULL, `curency` char(3) DEFAULT NULL, `id_city` smallint(4) unsigned NOT NULL, `id_user` smallint(6) unsigned NOT NULL, `check` tinyint(1) unsigned DEFAULT NULL, `on_off` tinyint(1) unsigned DEFAULT NULL, `vip` tinyint(1) unsigned DEFAULT NULL, `color` tinyint(1) unsigned DEFAULT NULL, `look` int(11) unsigned NOT NULL, `data_click` int(11) unsigned DEFAULT NULL, `video` text, `left` tinyint(3) unsigned NOT NULL, `right` tinyint(3) unsigned NOT NULL, `vip_date` int(10) unsigned DEFAULT NULL, `foto` int(11) unsigned NOT NULL, `parse` tinyint(1) unsigned DEFAULT NULL, `old_num` int(11) unsigned DEFAULT NULL, `upkol` tinyint(1) unsigned DEFAULT NULL, `original_id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `original_id` (`original_id`), KEY `date` (`date`), KEY `vip` (`vip`), KEY `on_off` (`on_off`), KEY `check` (`check`), KEY `left` (`left`), KEY `id_category` (`id_category`,`date`), KEY `id_user` (`id_user`,`date`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 PACK_KEYS=0 AUTO_INCREMENT=153217 ; -- -- Дамп данных таблицы `adverts` -- INSERT INTO `adverts` (`id`, `id_category`, `title`, `text`, `date`, `price`, `curency`, `id_city`, `id_user`, `check`, `on_off`, `vip`, `color`, `look`, `data_click`, `video`, `left`, `right`, `vip_date`, `foto`, `parse`, `old_num`, `upkol`, `original_id`) VALUES (4562, 77, 'Samsung E1080 очень тонкий новый цена 380 руб.', 'Новая модель Samsung E1080 оснащена всеми основными функциями и привлекает современным дизайном. ', 1315253454, NULL, NULL, 2, 10, 1, 1, 0, 0, 29, 0, '', 0, 31, 0, 1, 1, 0, 0, 8650123);
mdova
Сообщение
17/03/2012 10:20
Копия темы
Пробовал так DELETE FROM `adverts` WHERE `date` < NOW() INTERVAL 7 DAY не помогло (( потом так DELETE FROM `adverts` WHERE `text` < NOW() INTERVAL 7 DAY удалило напрочь всё что было, без разбора... Как же удалить только то что по времени старое... ?((
mdova
Сообщение
17/03/2012 11:47
Копия темы
0
Спасибо огромное! Благодарю, человечище! :)) Очень помогли, теперь супер, вводим: DELETE from `adverts` WHERE `date` < UNIX_TIMESTAMP()-86400*93 // Очищаем БД от старых объявлений. // Удаляем объявления старше 93 дней(три месяца), число меняем на нужное... |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |