Firefox 29 - come posso eliminare le voci della cronologia visitate meno di x volte


11

Contesto:

Uso il mio profilo Firefox da un paio d'anni. Il mio file di cronologia è diventato enorme, naturalmente. Ho installato Firefox Sync tra il mio PC desktop principale e il mio laptop.

Config HW:

  • PC: i5-3450, 8 GB di RAM DDR3, SSD Crucial M4 da 128 GB
  • laptop: Pentium SU4100, 4 GB di RAM DDR3, HDD WD 5400 rpm

L'accesso alle voci della cronologia quando si digita nella Awesome Bar sul mio desktop richiede parecchio tempo nonostante la buona configurazione, il laptop è ancora più lento. L'esperienza non risponde.

Ho pensato che se avessi chiarito un po 'la cronologia, avrei potuto evitare di creare un nuovo profilo per accelerare le cose.

La domanda stessa:

Illustrare:

storia

C'è un modo per eliminare tutte le voci della cronologia che sono state visitate meno di x (diciamo 5) volte e allo stesso tempo la visita recente ha meno di y (diciamo 120) giorni?

dal momento che il file di cronologia è una specie di database SQL, ma non sono sicuro di come vengano salvati i dati, se esiste un "modo sicuro" per modificarli e come sarebbe la query per fare ciò di cui ho bisogno.


Ho continuato a sfogliare le precedenti domande di SuperUser per vedere se potevo trovare informazioni pertinenti.

Nella mia directory del profilo di Firefox, c'è un file chiamato places.sqlite. Aprendolo con sqlite rivela (tra gli altri) i tavoli moz_placese moz_historyvisits. Sembra che moz_historyvisitsusi il primario di moz_placesper fare riferimento agli URL.

Dato che non ho familiarità con i database, non capisco davvero in che modo siano correlate le due tabelle citate nella citazione.

screenshot di una parte dei tavoli places_sqlite

Ho notato che visit_countè in un formato standard, facilitando il lavoro. Gli last_visit_datesguardi criptati al mio occhio nudo, ma non riesco a vedere in che modo.

Spero che mi aiuti, sono alla fine del mio ingegno.


Per rispondere a una delle tue domande, in base a questa risposta , Firefox utilizza infatti SQL. Consiglio di avviare SQLLite e andare da lì.
AStopher

Cosa hai provato finora? Prima di procedere, puoi confermare che un profilo Firefox nuovo di zecca offre un'esperienza più scattante, in particolare sul laptop?
and31415

1
Ho appena pubblicato una risposta che contiene alcune nuove informazioni. Per quanto riguarda lo snappiness, no, non ci ho provato, ma ricordo distintamente che Awesome Bar era molto più scattante quando il profilo era abbastanza nuovo (e la storia non era ingombra da molte voci), sia sul laptop che sul desktop.
lousyuser,

Hai riscontrato miglioramenti delle prestazioni dopo aver cancellato la cronologia? - edit: oops: vedo ora che hai commentato la risposta selezionata e hai notato un notevole miglioramento.
ndemou,

Risposte:


9

Con alcune ricerche (vedi alla fine per "riferimenti"), ho trovato questa (semplice) soluzione semplice:


BACKUP PRIMO. PRIMA CHIUDI FIREFOX


Ciò richiede di modificare il database SQLite (un database SQL autonomo; vedi l' articolo di Wikipedia ) di Mozilla Firefox eseguendo una query per trovare tutti i record che soddisfano la condizione (nel tuo caso - visualizzati meno di 5 volte e non visitati nella ultimi 120 giorni).


BACKUP PRIMO. PRIMA CHIUDI FIREFOX

Le istruzioni iniziano:


Funziona (testato e funzionante con Firefox v. 29.0.1). In 12 semplici passaggi (ish):

  1. Installa il browser del database SQLite

  2. Aprilo

  3. Fai clic su Apri database

  4. Passa alla C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]modifica come richiesto

    BACKUP DEL SEGUENTE FILE PRIMO !!

  5. Apri places.sqlitedalla directory che hai aperto al passaggio 4.

    SERIAMENTE, BACKUP PRIMA !!

  6. Fai clic sulla scheda Esegui SQL.

  7. Inserisci questo:

    SELECT *
    FROM moz_places
    WHERE
        last_visit_date BETWEEN strftime('%s','2014-04-01')*1000000
                        AND strftime('%s','2014-05-30')*1000000
        AND visit_count < x(2)
    
  8. Sostituisci x(2)con 5 (nel tuo esempio)

  9. Sostituisci 2014-04-01e 2014-05-30con l'intervallo di date che desideri

  10. Premi il pulsante di riproduzione blu.

  11. Controlla se i siti visualizzati sono corretti (dovrebbero essere, ma ricontrolla!)

  12. In tal caso, sostituire le prime due righe del codice sopra con:

    DELETE
    FROM moz_places
    

    quindi il tuo codice è simile a:

    DELETE
    FROM moz_places
    WHERE
        last_visit_date BETWEEN strftime('%s','2014-04-01')*1000000
                        AND strftime('%s','2014-05-30')*1000000
        AND visit_count < x(2)
    

FATTO! Chiudi il programma e fai clic su Salva alla chiusura.

Le istruzioni finiscono


E il last_visit_date?

Last_visit_date sembra crittografato a occhio nudo, ma non riesco a vedere in che modo.

Non lo definirei "crittografato" (anche se non sono in disaccordo sul fatto che sembra crittografato). È solo in un altro "sistema". La data è nel Unixsistema orario (o Epoch/ POSIX). È il numero di secondi trascorsi dalle 00:00:00 (UTC) del 1 ° gennaio 1970. 1 ora è 3600 secondi. 1 anno è 31556926 giorni.

Per maggiori informazioni. consulta questo articolo di Wikipedia o questo sito Web che converte il tempo da e verso il tempo.


Schermate (ignora le query SQL su queste immagini, sono sbagliate. Questi sono per dirti principalmente dove cercare)

Browser del database SQLite Browser del database SQLite Browser del database SQLite

Grazie a ;):


Per maggiore sicurezza, potresti voler fare una copia (backup) del database prima di farlo.
Bob,

Inoltre, se vuoi farlo correttamente, dovresti anche cancellare da moz_placestutte le voci che non hanno più un corrispondente place_id.
Bob,

Siamo spiacenti, intendevo cancellare damoz_historyvisits
Bob

@Bob E place_idin moz_historyvisits= idin moz_places?
ᔕᖺᘎᕊ

Dovrebbe essere. Esistono due modi per gestirlo: 1. elimina dal moz_historyvists primo ( delete from moz_historyvisits as hv left join moz_places as p on hv.place_id = p.id where p.visit_count...) o 2. dopo aver cancellato moz_places, puoi eliminare da moz_historyvisitsqualsiasi voce che non ha la voce corrispondente . Preferisco l'opzione 1 personalmente. Non usarlo senza test; il mio SQL è piuttosto arrugginito e ho imparato con pgsql, non con sqlite. Potresti effettivamente essere in grado di eliminare da entrambi contemporaneamente, lemme test.
Bob,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.