Firefox 29 - comment supprimer les entrées d'historique visitées moins de x fois

11

Le contexte:

J'utilise mon profil Firefox depuis quelques années maintenant. Mon dossier historique est devenu énorme, naturellement. J'ai installé Firefox Sync entre mon ordinateur de bureau principal et mon ordinateur portable.

Configurations matérielles:

  • PC: i5-3450, 8 Go de RAM DDR3, SSD Crucial M4 128 Go
  • ordinateur portable: Pentium SU4100, 4 Go de RAM DDR3, disque dur WD 5400 tr / min

L'accès aux entrées d'historique lors de la saisie dans la barre impressionnante sur mon bureau prend un certain temps malgré la configuration correcte, l'ordinateur portable est encore plus lent. L'expérience ne répond pas du tout.

J'ai pensé que si j'effaçais un peu l'historique, je pourrais éviter de créer un nouveau profil pour accélérer les choses.

La question elle-même:

Pour illustrer:

histoire

Existe-t-il un moyen de supprimer toutes les entrées d'historique qui ont été visitées moins de x (disons 5) fois et en même temps la visite récente a moins de y (disons 120) jours?

afaik le fichier historique est une sorte de base de données SQL, mais je ne sais pas vraiment comment les données sont enregistrées, s'il existe un "moyen sûr" de les modifier et à quoi ressemblerait la requête pour faire ce dont j'ai besoin.


J'ai continué à parcourir les questions précédentes de SuperUser pour voir si je pouvais trouver des informations pertinentes.

Dans mon répertoire de profil Firefox, il y a un fichier nommé places.sqlite. L'ouvrir avec sqlite révèle (entre autres) les tables moz_placeset moz_historyvisits. Il semble que moz_historyvisitsutilise le principal de moz_placespour faire référence aux URL.

Comme je ne suis pas familier avec les bases de données, je ne comprends pas vraiment la façon dont les deux tables mentionnées dans la citation sont liées.

capture d'écran d'une partie des tableaux places_sqlite

J'ai remarqué que le visit_countformat est standard, ce qui facilite son utilisation. Les last_visit_dateregards sont cryptés à l'œil nu, mais je ne vois pas de quelle manière.

J'espère que cela aide, je suis à bout de souffle.

lousyuser
la source
Pour répondre à l'une de vos questions, selon cette réponse , Firefox utilise en fait SQL. Je recommande de lancer SQLLite et de partir de là.
AStopher
Qu'avez-vous essayé jusqu'à présent? Avant de continuer, pouvez-vous confirmer qu'un tout nouveau profil Firefox offre une expérience plus vive, en particulier sur l'ordinateur portable?
and31415
1
Je viens de publier une réponse qui contient de nouvelles informations. En ce qui concerne la vivacité, non, je n'ai pas essayé, mais je me souviens clairement que la barre impressionnante était beaucoup plus vivante lorsque le profil était assez nouveau (et l'histoire épurée par de nombreuses entrées), à la fois sur l'ordinateur portable et le bureau.
lousyuser
Avez-vous constaté une amélioration des performances après avoir effacé votre historique? - edit: oops: Je vois maintenant que vous avez commenté la réponse sélectionnée et que vous avez remarqué une grande amélioration.
ndemou

Réponses:

9

Avec quelques recherches (voir à la fin pour les «références»), j'ai trouvé cette (sorte de) solution simple:


SAUVEGARDE D'ABORD. CLOSE FIREFOX D'ABORD


Cela vous oblige à modifier la base de données SQLite (une base de données SQL autonome; voir l'article Wikipédia ) de Mozilla Firefox en effectuant une requête pour trouver tous les enregistrements qui remplissent la condition (dans votre cas - consultés moins de 5 fois et non visités dans le 120 derniers jours).


SAUVEGARDE D'ABORD. CLOSE FIREFOX D'ABORD

Début des instructions:


Cela fonctionne (testé et fonctionne avec mon Firefox v. 29.0.1). En 12 étapes faciles (ish):

  1. Installer le navigateur de base de données SQLite

  2. L'ouvrir

  3. Cliquez sur Ouvrir la base de données

  4. Accédez à l' C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]édition si nécessaire

    SAUVEGARDEZ LE FICHIER SUIVANT EN PREMIER !!

  5. Ouvrez à places.sqlitepartir du répertoire que vous avez ouvert à l'étape 4.

    SÉRIEUSEMENT, SAUVEGARDE D' ABORD !!

  6. Cliquez sur l'onglet Exécuter SQL.

  7. Entrez ceci:

    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. Remplacer x(2)par 5 (dans votre exemple)

  9. Remplacez 2014-04-01et 2014-05-30par la plage de dates que vous souhaitez

  10. Appuyez sur le bouton de lecture bleu.

  11. Vérifiez si les sites affichés sont corrects (ils devraient l'être, mais revérifiez!)

  12. Si tel est le cas, remplacez les deux premières lignes du code ci-dessus par:

    DELETE
    FROM moz_places
    

    de sorte que votre code ressemble à quelque chose comme:

    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)
    

TERMINÉ! Fermez le programme et cliquez sur enregistrer lors de la fermeture.

Fin des instructions


Et le last_visit_date?

Le last_visit_date semble crypté à mon œil nu, mais je ne vois pas de quelle manière.

Je ne l'appellerais pas «crypté» (bien que je ne conteste pas qu'il semble crypté). C'est juste dans un autre «système». La date est dans le Unixsystème horaire (ou Epoch/ POSIX). C'est le nombre de secondes qui se sont écoulées depuis 00:00:00 (UTC) le 1er janvier 1970. 1 heure est 3600 secondes. 1 an est 31556926 jours.

Pour plus d'informations. consultez cet article Wikipédia ou ce site Web qui convertit le temps de et vers l'époque.


Captures d'écran (ignorez les requêtes SQL sur ces images, elles sont erronées. Celles-ci vous indiquent surtout où chercher)

Navigateur de base de données SQLite Navigateur de base de données SQLite Navigateur de base de données SQLite

Grâce à ;):

ᔕᖺᘎᕊ
la source
Pour plus de sécurité, vous souhaiterez peut-être effectuer une copie (sauvegarde) de la base de données avant de procéder.
Bob
En outre, si vous souhaitez le faire correctement, vous devez également supprimer de moz_placestoutes les entrées qui n'ont plus de correspondant place_id.
Bob
Désolé, je voulais dire supprimer demoz_historyvisits
Bob
@Bob Et place_iddans moz_historyvisits= idin moz_places?
ᔕᖺᘎᕊ
Devrait être. Il existe deux façons de le gérer: 1. supprimer de 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...) ou 2. après effacement moz_places, vous pouvez supprimer de moz_historyvisitstoutes les entrées qui n'ont pas l'entrée correspondante . Je préfère personnellement l'option 1. Ne l'utilisez pas sans test; mon SQL est plutôt rouillé, et j'ai appris avec pgsql, pas sqlite. Vous pourrez peut-être supprimer les deux à la fois, lemme test.
Bob