Przeszukiwanie tablicy z dużymi rekordami

0

Mam tablice w której trzymam duże obiekty typu BLOB, każdy rekord jest przypisany do konta użytkownika który ma pewien limit czasu

Teraz chciałbym co jakiś czas puszczać zapytanie które będzie usuwać rekordy, które są przeterminowane

Powiedzmy że schemat tabel jest taki

Użytkownicy

id data_waznosci
1 8/06/2013
2 9/06/2013

Duże_obiekty

id id_uzytkownika blob1 blob2 text
100 1 ... ... ...
105 1 ... ... ...
124 2 ... ... ...

Pytanie - czy opłaca się tworzyć trzecią tablicę wiążącą Duże_obiekty z Użytkownikami? W stylu:

Powiązanie

id_uzytkownika id_duzego_obiektu
1 100
1 105
2 124

Czy może to przyspieszyć wyłuskiwanie elementów do usunięcia, czy wystarczy indeks na id_uzytkownika?
Powiedzmy że w pierwszym przypadku miałbym zapytanie:

DELETE Duże_obiekty FROM Duże_obiekty LEFT JOIN Użytkownicy ON Duże_obiekty.id_uzytkownika = Użytkownicy.id WHERE data_waznosci < aktualna_data

a w drugim coś w stylu:

DELETE FROM Duże_obiekty WHERE id IN (SELECT id_duzego_obiektu FROM Powiązanie LEFT JOIN Użytkownicy ON Powiązanie.id_uzytkownika = Użytkownicy.id WHERE data_waznosci < aktualna_data)

z tabeli Powiązanie automatycznie by się usuwały rekordy bo klucz obcy byłby ustawiony na CASCADE ON DELETE

Możliwe że piszę bzdury bo o tej porze ciężko z myśleniem ;)

0

w sumie to nie wiem czemu pomyślałem że drugie rozwiązanie może być lepsze :|
cofam to

ale w temacie możecie dalej pisać jakieś wskazówki albo dobre praktyki do takich przypadków ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1