Kontekst:
Korzystam z mojego profilu Firefox od kilku lat. Mój plik historii naturalnie stał się ogromny. Mam Firefox Sync skonfigurowany między moim głównym komputerem stacjonarnym a laptopem.
Konfiguracje sprzętu:
- PC: i5-3450, 8 GB pamięci DDR3 RAM, Crucial M4 128 GB SSD
- laptop: Pentium SU4100, 4 GB pamięci DDR3 RAM, dysk twardy WD 5400 rpm
Dostęp do wpisów historii podczas pisania w Awesome Bar na moim komputerze zajmuje dość dużo czasu, pomimo przyzwoitej konfiguracji, laptop jest jeszcze wolniejszy. To doświadczenie nie odpowiada.
Pomyślałem, że jeśli trochę wyczyszczę historię, mogę uniknąć tworzenia nowego profilu, aby przyspieszyć.
Samo pytanie:
Ilustrować:
Czy istnieje sposób na usunięcie wszystkich wpisów historii, które były odwiedzane mniej niż x (powiedzmy 5) razy, a jednocześnie ostatnia wizyta ma mniej niż y (powiedzmy 120) dni?
afaik plik historii jest pewnego rodzaju bazą danych SQL, ale tak naprawdę nie jestem pewien, w jaki sposób dane są zapisywane, czy istnieje „bezpieczny sposób” ich edycji i jak wyglądałoby zapytanie do zrobienia, czego potrzebuję.
Przeglądałem poprzednie pytania SuperUser, aby sprawdzić, czy mogę znaleźć odpowiednie informacje.
W moim katalogu profilu przeglądarki Firefox znajduje się plik o nazwie
places.sqlite
. Otwarcie go za pomocą sqlite ujawnia (między innymi) stołymoz_places
imoz_historyvisits
. Wygląda na to, żemoz_historyvisits
używa pierwotnego zmoz_places
do odwoływania się do adresów URL.
Ponieważ nie jestem zaznajomiony z bazami danych, tak naprawdę nie rozumiem, w jaki sposób powiązane są dwie tabele wymienione w cytacie.
zrzut ekranu części tabel
Zauważyłem, że visit_count
jest w standardowym formacie, co ułatwia pracę z nim. Te last_visit_date
spojrzenia szyfrowane moim gołym okiem, ale nie widzę, w jaki sposób.
Mam nadzieję, że to pomaga, jestem na granicy rozumu.
źródło
Odpowiedzi:
Po przeprowadzeniu niektórych badań (patrz na końcu „referencje”), wymyśliłem to (swego rodzaju) proste rozwiązanie:
BACKUP FIRST. PIERWSZY ZAMKNIJ FIREFOX
Wymaga to edycji bazy danych SQLite (samodzielnej bazy danych SQL; zob. Artykuł w Wikipedii ) przeglądarki Mozilla Firefox poprzez wykonanie zapytania w celu znalezienia wszystkich rekordów spełniających warunek (w twoim przypadku - wyświetlono mniej niż 5 razy i nie odwiedzono w ostatnie 120 dni).
BACKUP FIRST. PIERWSZY ZAMKNIJ FIREFOX
Instrukcje rozpoczynają się:
To działa (przetestowane i współpracuje z moim Firefoksem wer. 29.0.1). W 12 łatwych (ish) krokach:
Zainstaluj przeglądarkę bazy danych SQLite
Otwórz to
Kliknij Otwórz bazę danych
Przejdź do
C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]
edycji zgodnie z wymaganiamiZAPASUJ PONIŻSZE PLIKI !!
Otwórz
places.sqlite
z katalogu otwartego w kroku 4.POWAŻNIE, ZAPASY PIERWSZE !!
Kliknij kartę Wykonaj SQL.
Wpisz to:
Zamień
x(2)
na 5 (w twoim przykładzie)Zamień
2014-04-01
i2014-05-30
na żądany zakres datNaciśnij niebieski przycisk odtwarzania.
Sprawdź, czy wyświetlane witryny są poprawne (powinny, ale sprawdź dwukrotnie!)
Jeśli tak, zamień pierwsze dwa wiersze powyższego kodu na:
więc twój kod wygląda mniej więcej tak:
GOTOWY! Zamknij program i kliknij zapisz podczas zamykania.
Instrukcje kończą się
Co o
last_visit_date
?Nie nazwałbym tego „zaszyfrowanym” (chociaż nie zgadzam się, że wygląda na zaszyfrowanego). Jest po prostu w innym „systemie”. Data jest w systemie
Unix
czasu (lubEpoch
/POSIX
). Jest to liczba sekund, które upłynęły od 00:00:00 (UTC) 1 stycznia 1970 r. 1 godzina to 3600 sekund. 1 rok to 31556926 dni.Po więcej informacji. sprawdź ten artykuł w Wikipedii lub tę stronę internetową, która konwertuje czas do i z epoki.
Zrzuty ekranu (zignoruj zapytania SQL dotyczące tych obrazów, są one nieprawidłowe. Mają one na celu przede wszystkim wskazanie, gdzie szukać)
Dzięki ;):
źródło
moz_places
wszystkie wpisy, które nie mają już odpowiednichplace_id
.moz_historyvisits
place_id
inmoz_historyvisits
=id
inmoz_places
?moz_historyvists
pierwszego (delete from moz_historyvisits as hv left join moz_places as p on hv.place_id = p.id where p.visit_count...
) lub 2. po wyczyszczeniumoz_places
możesz usunąć zmoz_historyvisits
każdego wpisu, który nie ma odpowiedniego wpisu . Wolę opcję 1 osobiście. Nie używaj go bez testowania; mój SQL jest raczej zardzewiały i nauczyłem się z pgsql, a nie sqlite. Możesz być w stanie usunąć oba z nich jednocześnie, test lemme.