nie rób tego. Zwłaszcza, jeżeli to tablica z indeksami. Jeśli baza zaczyna “chodzić wolno” rozważ jakiś rodzaj rotacji (tworzenie nowej tablicy o tej samej strukturze, import do bazy rekordów z jakiegoś zakresu, podmiana tablic). Jeśli coś już raz trafiło do bazy to powinno w niej zostać.
I co z tego że tablica z indeksami? Dawno nie widziałem bez indeksów.
Rekordy usuwa się gdy są nie potrzebne, nigdzie nie są wykorzystywane - jedynie trzeba pamiętać o usunięciu zależności.
Szkoda marnować miejsca na serwerze na jakieś zbędne dane i czasu na pisanie skryptów robiących jakieś “podmiany”, które mogą narobić dodatkowego syfu, czy nawet wywalić niechcący wszystkie dane.
Ano to, że zdefragmentowane indeksy potrafią wielokrotnie (rząd wielkości - 100) wydłużyć kwerendę. Jest jedna okoliczność, w której powinno się usunąć coś z tablicy. Gdy tablica przechowuje dane osobowe, a ich właściciel tego zażąda.
Wiesz co to jest zasada komputer zombie? To jest idealne rozwiązanie. Robisz tak, że codziennie pierwsza osoba która wejdzie na stronę to wyczyści to co chcesz o ile czyszczenie trwa max 2sekundy to nie będzie to miało wpływu na irytację tej osoby i będziesz miał zautomtyzowany proces.
Więc ja bym sobie jako flagę, (że dzisiaj już czyszczenie było) zrobił sobie pole typu datetime, następnie gdzieś na początku aplikacji napisał funkcję która sprawdza czy DATE() z tego pola jest mniejsze od DATE() dzisiejszego, jeżeli tak to wtedy robisz czyszczenie a po skończeniu czyszczenia zmieniasz oczywiście datę na dzisiejszą po to aby następny użytkownik już tego nie robił.
Ewentualnie cykliczne zadanie (cron) ale ja bym unikał cronów kiedy się da.
Bardziej zaawansowanym sposobem i również skutecznym może być TRIGGER na bazie