Удаление строк в таблице бд на автомате

Тема в разделе "Базы данных", создана пользователем vasek2, 5 апр 2012.

Модераторы: latteo
  1. vasek2

    vasek2

    Регистр.:
    8 июн 2008
    Сообщения:
    181
    Симпатии:
    17
    Нужна инструкция по настройке автоматического удаления полей в таблице базы данных sql по расписанию. CMS Wordpress 2.9, установлен плагин трекер поисковых фраз NSx Referers (Перейти по ссылке ). Плагин работает корректно, собирает поисковые запросы в бд, но со временем их становится слишком много и из-за этого увеличивается нагрузка на базу данных. В результате приходится регулярно вручную чистить таблицу плагина от низкочастотных и мусорных фраз ( в таблице плагина есть значение "hits"- количество хитов, которые пришли на сайт по данному запросу- и приходится удалять все записи со значением hits <=2).
    Буду несказанно благодарен за подробное разъяснение, как мне автоматизировать этот процесс- нужно задать автоматическое удаление записей в таблице плагина со значением hits<=2 - по расписанию, 1 раз в неделю.
    Спасибо за ответы.
     
  2. zakaji

    zakaji

    Регистр.:
    8 сен 2007
    Сообщения:
    407
    Симпатии:
    171
    почти то же самое решаю запуском php-скрипта кроном, скрипт подключается к базе и чистит старые данные.
     
    vasek2 нравится это.
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    vasek2 нравится это.
  4. vasek2

    vasek2

    Регистр.:
    8 июн 2008
    Сообщения:
    181
    Симпатии:
    17
    а можно подробнее? Что за скрипт и как настроить
     
  5. vasek2

    vasek2

    Регистр.:
    8 июн 2008
    Сообщения:
    181
    Симпатии:
    17
    dino , посмотрел....... но мне бы простую инструкцию под эту конкретную задачу, а то я себя знаю.. накосячу так накосячу.....
     
  6. zakaji

    zakaji

    Регистр.:
    8 сен 2007
    Сообщения:
    407
    Симпатии:
    171
    Элементарный скрипт делаете, в котором подключаетесь к базе и очищаете ненужные строки в таблице: hits<=2. И в "панели управления хостингом (сервером) - Планировщик (cron)" ставите скрипт на выполнение один раз в неделю, там всё элементарно.
     
  7. vasek2

    vasek2

    Регистр.:
    8 июн 2008
    Сообщения:
    181
    Симпатии:
    17
    а, собственно, скрипт?- имеется ли такой в открытом доступе?
     
  8. zakaji

    zakaji

    Регистр.:
    8 сен 2007
    Сообщения:
    407
    Симпатии:
    171
    :) пишется самостоятельно, у меня такой:

    PHP:
    <?php
     
    $sql_host
    ='localhost';  /// Хост
    $sql_id='';        /// Логин
    $sql_pass='';    /// Пароль
    $sql_db='';      /// База
     
    $link mysql_connect("$sql_host""$sql_id""$sql_pass") or $error.="<b>Clean MySQL. Connect Error</b>: ".mysql_error()."<br />";
    $link2 mysql_select_db("$sql_db") or $error.="<b>Clean MySQL. Select DB Error</b>:".mysql_error()."<br />";
    //вписать своё название таблицы
    mysql_query("DELETE FROM таблица WHERE hits <= 2 )");
    $del mysql_affected_rows();
    if (
    $del 1) echo 'DEL rows - '.$del.'<br>';
     
    if (isset(
    $error)) echo $error;
     
    mysql_close($link);
    unset(
    $error$del);
     
    ?>
    нужно вписать свои значения для подключения к базе и название таблицы в запросе
     
  9. vasek2

    vasek2

    Регистр.:
    8 июн 2008
    Сообщения:
    181
    Симпатии:
    17
    что-то не запускается...... через крон - на почту такое сообщение после запуска скрипта - /bin/sh: -c: line 0: syntax error near unexpected token `newline' , а если вручную задать в адресной строке путь к файлу- просто белая страница, а в базе ничего не удалилось... наверное, я что-то не то сделал?
     
  10. zakaji

    zakaji

    Регистр.:
    8 сен 2007
    Сообщения:
    407
    Симпатии:
    171
    Ну вы прям вообще не шарите чтоли? сначала пробуем выполнять запрос через phpmyadmin, и там видно будет правильный или нет! Я там одну лишнюю скобку оставил, надо так:
    Код:
    mysql_query("DELETE FROM таблица WHERE hits <= 2");
    так будет из адресной строки выполняться. файл как сохранили с расширением *.php? в кроне писать нужно так
    Код:
    /usr/bin/wget -O - http://вашсайт.ру/папка/скрипт.php