Kontext:
Ich benutze mein Firefox-Profil seit einigen Jahren. Meine Verlaufsdatei ist natürlich riesig geworden. Ich habe Firefox Sync zwischen meinem Haupt-Desktop-PC und meinem Laptop eingerichtet.
HW-Konfigurationen:
- PC: i5-3450, 8 GB DDR3-RAM, Crucial M4 128 GB SSD
- Laptop: Pentium SU4100, 4 GB DDR3-RAM, WD 5400 U / min HDD
Der Zugriff auf Verlaufseinträge beim Eingeben in die Awesome-Leiste auf meinem Desktop dauert trotz der anständigen Konfiguration ziemlich lange. Der Laptop ist sogar noch langsamer. Die Erfahrung reagiert nicht.
Ich dachte mir, wenn ich den Verlauf ein wenig aufkläre, könnte ich es vermeiden, ein neues Profil zu erstellen, um die Dinge zu beschleunigen.
Die Frage selbst:
Um zu zeigen:
Gibt es eine Möglichkeit, alle Verlaufseinträge zu löschen, die weniger als x (sagen wir 5) Mal besucht wurden und gleichzeitig der letzte Besuch weniger als y (sagen wir 120) Tage alt ist?
afaik die Verlaufsdatei ist eine Art SQL-Datenbank, aber ich bin mir nicht sicher, wie die Daten gespeichert werden, ob es einen "sicheren Weg" gibt, sie zu bearbeiten und wie die Abfrage aussehen würde, um das zu tun, was ich brauche.
Ich habe die vorherigen SuperUser-Fragen durchsucht, um festzustellen, ob ich relevante Informationen finden konnte.
In meinem Firefox-Profilverzeichnis befindet sich eine Datei mit dem Namen
places.sqlite
. Das Öffnen mit SQLite zeigt (unter anderem) die Tabellenmoz_places
undmoz_historyvisits
. Es scheint, dassmoz_historyvisits
die primäre von verwendet wirdmoz_places
, um auf die URLs zu verweisen.
Da ich mit Datenbanken nicht vertraut bin, verstehe ich die Beziehung zwischen den beiden im Zitat genannten Tabellen nicht wirklich.
Screenshot eines Teils der Tabellen
Ich habe festgestellt, dass das visit_count
Format in einem Standardformat vorliegt, was die Arbeit erleichtert. Die last_visit_date
Blicke sind mit bloßem Auge verschlüsselt, aber ich kann nicht sehen, auf welche Weise.
Hoffe das hilft, ich bin am Ende meines Verstandes.
quelle
Antworten:
Mit einigen Recherchen (siehe 'Referenzen' am Ende) habe ich mir diese (Art) einfache Lösung ausgedacht:
Backup zuerst. FIREFOX ZUERST SCHLIESSEN
Dazu müssen Sie die SQLite- Datenbank (eine in sich geschlossene SQL-Datenbank; siehe Wikipedia-Artikel ) von Mozilla Firefox bearbeiten, indem Sie eine Abfrage durchführen, um alle Datensätze zu finden, die die Bedingung erfüllen (in Ihrem Fall - weniger als fünfmal angezeigt und nicht in der letzte 120 Tage).
Backup zuerst. FIREFOX ZUERST SCHLIESSEN
Anleitung beginnt:
Dies funktioniert (getestet und funktioniert mit meinem Firefox v. 29.0.1). In 12 einfachen (ish) Schritten:
Installieren Sie den SQLite-Datenbankbrowser
Öffne es
Klicken Sie auf Datenbank öffnen
Navigieren Sie nach
C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]
Bedarf zur BearbeitungBACKUP die folgende Datei FIRST !!
Öffnen Sie
places.sqlite
aus dem Verzeichnis, das Sie in Schritt 4 geöffnet haben.Ernsthaft, Backup zuerst !!
Klicken Sie auf die Registerkarte SQL ausführen.
Geben Sie Folgendes ein:
Ersetzen Sie
x(2)
auf 5 (in Ihrem Beispiel)Ersetzen Sie
2014-04-01
und2014-05-30
mit dem gewünschten DatumsbereichDrücken Sie die blaue Wiedergabetaste.
Überprüfen Sie, ob die angezeigten Websites korrekt sind (sie sollten es sein, aber überprüfen Sie es noch einmal!)
Wenn dies der Fall ist, ersetzen Sie die ersten beiden Zeilen des obigen Codes durch:
Ihr Code sieht also ungefähr so aus:
ERLEDIGT! Schließen Sie das Programm und klicken Sie beim Schließen auf Speichern.
Anweisungen enden
Was ist mit dem
last_visit_date
?Ich würde es nicht "verschlüsselt" nennen (obwohl ich nicht anderer Meinung bin, dass es verschlüsselt aussieht). Es ist nur in einem anderen "System". Das Datum befindet sich im
Unix
Zeitsystem (oderEpoch
/POSIX
). Dies ist die Anzahl der Sekunden, die seit dem 1. Januar 1970, 00:00:00 (UTC) vergangen sind. 1 Stunde entspricht 3600 Sekunden. 1 Jahr ist 31556926 Tage.Für mehr Information. Schauen Sie sich diesen Wikipedia- Artikel oder diese Website an, die die Zeit in und aus der Epoche umwandelt.
Screenshots (ignorieren Sie die SQL-Abfragen auf diesen Bildern, sie sind falsch. Diese sollen Ihnen hauptsächlich sagen, wo Sie suchen müssen)
Dank an ;):
quelle
moz_places
alle Einträge löschen, für die keine entsprechenden Einträge mehr vorhanden sindplace_id
.moz_historyvisits
place_id
inmoz_historyvisits
=id
inmoz_places
?moz_historyvists
first (delete from moz_historyvisits as hv left join moz_places as p on hv.place_id = p.id where p.visit_count...
) oder 2. Nach dem Löschenmoz_places
können Sie alle Einträge löschenmoz_historyvisits
, die nicht über den entsprechenden Eintrag verfügen . Ich persönlich bevorzuge Option 1. Verwenden Sie es nicht ohne Tests. Mein SQL ist ziemlich verrostet und ich habe mit pgsql gelernt, nicht mit sqlite. Möglicherweise können Sie tatsächlich beide gleichzeitig löschen, Lemme-Test.