время цикла и миллисекунды

0

Я удаляю записи из своей базы данных на основе их отметки времени.

Мой запрос прост

delete from calldetailrecord where StartTime between 1262321999000 AND 1309492799000;

1262321999000 = Чт 31 дек 2009 23:59:59 GMT-0500 (Восточное стандартное время)

1296449999000 = Sun Jan 30 2011 23:59:59 GMT-0500 (Восточное стандартное время)

Для миллисекунд я использовал:

http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/, чтобы сделать мои расчеты

Интересно, как я могу сделать цикл while, чтобы удалить данные месяц за месяцем и остановиться, когда больше нет данных.

  • 4
    Зачем вам вообще нужна петля?
Теги:
loops

3 ответа

2

Интересно, как я могу сделать цикл while для удаления из месяца в месяц, и он остановится, когда данных больше нет.

Если вы хотите удалить все данные из таблицы, используйте команду truncate.

truncate calldetailrecord;

Просто одно delete сделает это тоже

delete from calldetailrecord;
  • 0
    удаление значительно медленнее, чем усечение.
0

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

DELETE FROM calldetailrecord WHERE StartTime BETWEEN 1353897342 AND 1353897592 OR StartTime BETWEEN 1353897754 AND 1353897764;

Вы должны использовать как минимум соединения с db, насколько это возможно.

0

Я думаю, что вы получите лучшую производительность таким образом:

Create table  new_table as select *  calldetailrecord where StartTime > 1309492799000

drop table calldetailrecord;
alter table new_table rename to calldetailrecord;

Это связано с проблемой удаления строки за строкой, которая будет очень медленной.

  • 0
    Не у всех есть drop , create , alter привилегии. Обычно пользователи имеют права insert , update , delete и select .
  • 0
    @ shiplu.mokadd.im, если это является причиной отрицательного голосования, которое является уникальным, если не сказать больше. Надлежащий администратор базы данных, безусловно, не должен позволять пользователям изменять данные, для которых необходимо выполнить резервное копирование / архивирование. Хороший администратор базы данных также не должен заставлять разработчиков использовать неэффективные методы для выполнения задачи.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню