2010-07-07 7 views
2

есть ли программное обеспечение, которое делает «ленивое» удаление строк из таблицы. Я хотел бы выполнять обслуживание моих таблиц, когда мой сервер простаивает, и в идеале я должен быть в состоянии определить, что такое «незанятый» (количество подключений к базе данных/загрузка/количество запросов в секунду). Есть ли что-то отдаленно похожее на это?Lazy удаление строк таблицы

ответ

1

В некоторой степени, с внутренней точки зрения InnoDB уже делает это. Строки сначала помечены как удаленные, но только сделаны свободными как часть фоновой операции.

Мой совет. Если вы попробуете и убедитесь, что сервер простаивает, вы можете столкнуться с ненужными сложными проблемами. то есть

  • Что делать, если он простаивает, но очистка занимает 2 минуты. В течение этих 2 минут пики нагрузки сервера?

  • Что делать, если сервер никогда не простаивает? Теперь у вас просто неограниченное отставание.

Если вы только фон задача, которую вы могли бы улучшить достаточную производительность, так как теперь по крайней мере, ни один пользователь не будет сидеть перед веб-страниц, ожидая его завершения. Посмотрите на диаграммы активности относительно того, какое время лучше запланировать (3 часа ночи, 5 утра и т. Д.).

2

Если вы находитесь на сервере linux, вы можете сделать скрипты очистки таблицы только на основе вывода команды «w», которая покажет вам системную загрузку. Если ваша загрузка системы находится под словом .25, вы можете запустить свой скрипт. Сделайте это с помощью сценариев оболочки.

+1

'uptime' обеспечивает одинаковые данные о загрузке и немного более кратким, чем' w'. –

Смежные вопросы