web-dev-qa-db-ja.com

Firefox 29-x回未満アクセスした履歴エントリを削除するにはどうすればよいですか?

環境:

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

HW構成:

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

デスクトップのAwesomeBarに入力するときに履歴エントリにアクセスするには、適切な構成にもかかわらず、かなり長い時間がかかりますが、ラップトップはさらに低速です。経験はまったく反応しません。

履歴を少しクリアすると、速度を上げるために新しいプロファイルを作成することを避けることができると思いました。

質問自体:

説明する:

history

X(たとえば5)回未満訪問され、同時に最近の訪問がy(たとえば120)日未満であるすべての履歴エントリを削除する方法はありますか?

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


以前のスーパーユーザーの質問を閲覧し続けて、関連情報を見つけることができるかどうかを確認しました。

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

私はデータベースに慣れていないので、引用で言及されている2つの表がどのように関連しているかを本当に理解していません。

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

visit_countが標準形式であり、操作が簡単であることに気づきました。 last_visit_dateは私には暗号化されているように見えますが、どちらの方法で見ることができません。

それがお役に立てば幸いです、私は私の知恵の終わりにいます。

11
lousyuser

いくつかの調査(「参考文献」については最後を参照)を使用して、この(一種の)単純な解決策を考え出しました。


バックアップを最初にFirefoxを最初に閉じる


これには、MozillaFirefoxの SQLite データベース(自己完結型SQLデータベース。 ウィキペディアの記事 を参照)を編集して、条件を満たすすべてのレコードを検索するクエリを作成する必要があります(あなたの場合-5回未満しか閲覧されていませんおよび過去120日間に訪問されていません)。


バックアップを最初にFirefoxを最初に閉じる

指示開始:


これは機能します(Firefoxv。29.0.1でテストおよび動作しています)。 12の簡単な(っぽい)ステップで:

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

  2. それを開く

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

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

    次のファイルをバックアップします[〜#〜]最初[〜#〜]!!

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

    真剣に、[〜#〜]バックアップ[〜#〜]最初に!!

  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-01_と_2014-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日です。

詳細については。 このウィキペディア 記事をチェックするか、 this 時間をエポック時間との間で変換するWebサイトを確認してください。


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

SQLite Database BrowserSQLite Database BrowserSQLite Database Browser

おかげで;):

9
ᔕᖺᘎᕊ