Firefox 29-訪問した履歴エントリをx回未満削除するには


11

環境:

私は数年前からFirefoxプロファイルを使用しています。私の履歴ファイルは自然に巨大になりました。メインデスクトップPCとラップトップの間にFirefox Syncをセットアップしました。

ハードウェア構成:

  • PC:i5-3450、8 GB DDR3 RAM、Crucial M4 128 GB SSD
  • ラップトップ:Pentium SU4100、4 GB DDR3 RAM、WD 5400 rpm HDD

デスクトップのAwesomeバーに入力するときに履歴エントリにアクセスすると、適切な設定にもかかわらずかなり時間がかかり、ラップトップはさらに遅くなります。経験は非常に無反応です。

履歴を少しクリアすると、スピードアップのために新しいプロファイルを作成するのを避けられるかもしれません。

質問自体:

説明する:

歴史

x(5としましょう)未満の回数だけアクセスされ、同時にy(120としましょう)日前の最近のアクセスがあったすべての履歴エントリを削除する方法はありますか?

履歴ファイルはなんらかのSQLデータベースですが、「安全な方法」でデータを編集し、必要なクエリを実行する方法がある場合、データがどのように保存されるのかはよくわかりません。


以前のSuperUserの質問を参照し続け、関連情報を見つけることができるかどうかを確認しました。

私のFirefoxプロファイルディレクトリにという名前のファイルがありますplaces.sqlite。sqliteで開くと、(特に)テーブルmoz_placesとが表示されmoz_historyvisitsます。moz_historyvisitsのプライマリを使用moz_placesしてURLを参照しているようです。

私はデータベースに慣れていないので、引用で言及されている2つのテーブルがどのように関連しているかはよくわかりません。

テーブルの一部のスクリーンショット Places_sqlite

visit_count標準的な形式になっているので、簡単に操作できることに気づきました。last_visit_dateルックスは、私の肉眼で暗号化されたが、私はどのように見ることができません。

お役に立てば幸いです。


あなたの質問の1つに答えるために、この答えによれば、Firefoxは実際にはSQLを使用しています。SQLLiteを起動してそこから移動することをお勧めします。
AStopher、2014年

これまでに何を試しましたか?先に進む前に、最新のFirefoxプロファイルが、特にラップトップで、よりスッキリしたエクスペリエンスを提供することを確認できますか?
and31415 2014年

1
新しい情報を含む回答を投稿しました。snappinessに関しては、いいえ、試したことがありませんが、ラップトップとデスクトップの両方で、プロファイルが非常に新しい(そして履歴がいくつかのエントリによって整理されている)とき、Awesome Barがはるかに素晴らしかったことをはっきりと覚えています。
lousyuser 2014年

履歴をクリアした後、パフォーマンスが向上しましたか?-編集:おっと:選択した回答にコメントし、大幅な改善に気づいたようです。
ndemou 2015

回答:


9

いくつかの調査(「リファレンス」については最後を参照)で、私はこの(一種の)簡単な解決策を思いつきました。


最初にバックアップします。 FIREFOXを最初に閉じる


これは、編集する必要がありますSQLiteの、データベース(参照自己完結型のSQLデータベースWikipediaの記事をあなたのケースで(条件を満足するすべてのレコードを検索するクエリを作成してMozillaのFirefoxを- 5倍未満を見て)に訪れていません過去120日間)。


最初にバックアップします。 FIREFOXを最初に閉じる

手順の開始:


これは動作します(テスト済みで、私のFirefox v。29.0.1で動作しています)。12の簡単なステップで:

  1. SQLiteデータベースブラウザーのインストール

  2. それを開く

  3. [データベースを開く]をクリックします

  4. C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]必要に応じて編集に移動します

    次のファイルを最初にバックアップしてください!!

  5. places.sqlite手順4で開いたディレクトリから開きます。

    真剣に、BACKUP FIRST !!

  6. [SQLの実行]タブをクリックします。

  7. これを入力してください:

    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. x(2)5に置き換えます(例では)

  9. 置き換え2014-04-012014-05-30したい日付の範囲で

  10. 青い再生ボタンを押します。

  11. 表示されたサイトが正しいかどうかを確認します(正しいはずですが、再確認してください!)

  12. そうであれば、上記のコードの最初の2行を次のコードに置き換えます。

    DELETE
    FROM moz_places
    

    したがって、コードは次のようになります。

    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)
    

やった!プログラムを閉じ、閉じるときに[保存]をクリックします。

手順は終了します


はどうlast_visit_dateですか?

last_visit_dateは暗号化されているように見えますが、どのように表示されているのかわかりません。

私はそれを「暗号化された」とは呼びません(ただし、暗号化されているように見えることに異論はありません)。それはちょうど別の「システム」にあります。日付はUnix時間システム(またはEpoch/ POSIX)です。1970年1月1日00:00:00(UTC)から経過した秒数です。1時間は3600秒です。1年は31556926日です。

詳細については。このWikipediaの記事、または時間をエポックタイムとの間で変換するこの Webサイトをチェックしてください。


スクリーンショット(これらの画像でのSQLクエリは無視してください。これらは間違っています。これらは主にどこを見るべきかを伝えるものです)

SQLiteデータベースブラウザ SQLiteデータベースブラウザ SQLiteデータベースブラウザ

おかげで;):


セキュリティを強化するために、これを行う前にデータベースのコピー(バックアップ)を作成することをお勧めします。
ボブ

また、これを適切に行う場合moz_placesは、対応するがなくなったエントリからも削除する必要がありますplace_id
ボブ

申し訳ありませんが、削除することを意味しましたmoz_historyvisits
ボブ

@Bobそして、place_idmoz_historyvisits= idmoz_places
'2014年

する必要があります。1.削除:2つのそれを処理するための方法があります。moz_historyvists 最初の(delete from moz_historyvisits as hv left join moz_places as p on hv.place_id = p.id where p.visit_count...クリア後)または2 moz_places、あなたがすることができますから、削除moz_historyvisits対応するエントリを持っていないすべてのエントリが。私は個人的にオプション1を好みます。テストせずに使用しないでください。私のSQLはやや錆びており、sqliteではなくpgsqlで学んだ。実際には、両方から同時に削除できる可能性があります(lemme test)。
ボブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.