Firefox 29 - bagaimana cara menghapus entri riwayat yang dikunjungi kurang dari x kali

11

Konteks:

Saya telah menggunakan profil Firefox saya selama beberapa tahun sekarang. File riwayat saya menjadi besar, secara alami. Saya mengatur Firefox Sync antara PC desktop utama dan laptop saya.

Konfigurasi HW:

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

Mengakses entri histori saat mengetik di Awesome Bar di desktop saya membutuhkan waktu yang cukup lama meskipun konfigurasi yang layak, laptop bahkan lebih lambat. Pengalamannya sangat tidak responsif.

Saya pikir jika saya sedikit membersihkan sejarah, saya mungkin menghindari membuat profil baru untuk mempercepat.

Pertanyaannya sendiri:

Menggambarkan:

sejarah

Apakah ada cara untuk menghapus semua entri riwayat yang telah dikunjungi kurang dari x (misalkan 5) kali dan pada saat yang sama kunjungan baru-baru ini kurang dari y (katakanlah 120) hari?

afaik file sejarah adalah semacam database SQL, tapi saya tidak begitu yakin bagaimana data disimpan, jika ada "cara aman" untuk mengeditnya dan seperti apa query untuk melakukan apa yang saya perlukan akan terlihat.


Saya terus menelusuri pertanyaan SuperUser sebelumnya untuk melihat apakah saya dapat menemukan informasi yang relevan.

Di direktori profil Firefox saya, ada file bernama places.sqlite. Membuka dengan sqlite mengungkapkan (antara lain) tabel moz_placesdan moz_historyvisits. Tampaknya moz_historyvisitsmenggunakan utama moz_placesuntuk merujuk ke URL.

Karena saya tidak terbiasa dengan database, saya tidak benar-benar mengerti bagaimana dua tabel yang disebutkan dalam kutipan berhubungan.

tangkapan layar bagian dari tabel places_sqlite

Saya perhatikan visit_countini dalam format standar, membuatnya mudah untuk dikerjakan. The last_visit_dateterlihat dienkripsi untuk mata telanjang saya, tapi saya tidak bisa melihat di mana cara.

Semoga itu bisa membantu, aku sudah kehabisan akal.

lousyuser
sumber
Untuk menjawab salah satu pertanyaan Anda, menurut jawaban ini , Firefox sebenarnya menggunakan SQL. Saya sarankan jalankan SQLLite dan pergi dari sana.
AStopher
Apa yang kamu coba sejauh ini? Sebelum Anda melanjutkan, dapatkah Anda mengonfirmasi bahwa profil Firefox yang baru benar-benar memberikan pengalaman yang lebih tajam, terutama pada laptop?
and31415
1
Saya baru saja memposting jawaban yang berisi beberapa informasi baru. Sedangkan untuk keasyikan, tidak, saya belum mencoba, tapi saya ingat dengan jelas bahwa Awesome Bar jauh lebih keren ketika profilnya cukup baru (dan sejarah tidak berantakan oleh beberapa entri), baik pada laptop dan desktop.
lousyuser
Jadi, apakah Anda melihat peningkatan kinerja setelah membersihkan riwayat Anda? - edit: oops: Saya melihat sekarang bahwa Anda telah mengomentari jawaban yang dipilih dan Anda memang melihat peningkatan besar.
ndemou

Jawaban:

9

Dengan beberapa penelitian (lihat di akhir untuk 'referensi'), saya telah datang dengan solusi sederhana (semacam) ini:


CADANGAN PERTAMA TUTUP FIREFOX PERTAMA


Ini mengharuskan Anda untuk mengedit Database SQLite (database SQL mandiri; lihat artikel Wikipedia ) dari Mozilla Firefox dengan membuat kueri untuk menemukan semua catatan yang memenuhi syarat (dalam kasus Anda - dilihat kurang dari 5 kali dan tidak dikunjungi di 120 hari terakhir).


CADANGAN PERTAMA TUTUP FIREFOX PERTAMA

Instruksi mulai:


Ini berfungsi (diuji dan bekerja dengan Firefox v. 29.0.1 saya). Dalam 12 langkah mudah (ish):

  1. Instal SQLite Database Browser

  2. Buka

  3. Klik Buka Basis Data

  4. Arahkan ke C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]pengeditan sesuai kebutuhan

    MEMBUAT FILE PERTAMA BERIKUT INI !!

  5. Buka places.sqlitedari direktori yang Anda buka pada langkah 4.

    SERIUS, CADANGAN PERTAMA !!

  6. Klik tab Jalankan SQL.

  7. Masukkan ini:

    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. Ganti x(2)ke 5 (dalam contoh Anda)

  9. Ganti 2014-04-01dan 2014-05-30dengan rentang tanggal yang Anda inginkan

  10. Tekan tombol putar biru.

  11. Periksa apakah situs yang ditampilkan sudah benar (seharusnya, tetapi periksa!)

  12. Jika ya, ganti kedua baris pertama dari kode di atas dengan:

    DELETE
    FROM moz_places
    

    jadi kode Anda terlihat seperti:

    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)
    

DIBUAT! Tutup program dan klik simpan saat menutup.

Instruksi berakhir


Bagaimana dengan last_visit_date?

Last_visit_date terlihat terenkripsi dengan mata telanjang saya, tetapi saya tidak bisa melihat ke arah mana.

Saya tidak akan menyebutnya 'terenkripsi' (walaupun saya tidak setuju bahwa itu terlihat terenkripsi). Itu hanya di 'sistem' lain. Tanggal dalam Unixsistem waktu (atau Epoch/ POSIX). Ini adalah jumlah detik yang telah berlalu sejak 00:00:00 (UTC) 1 Januari 1970. 1 jam adalah 3600 detik. 1 tahun adalah 31556926 hari.

Untuk info lebih lanjut. periksa artikel Wikipedia ini, atau situs web ini yang mengubah waktu ke dan dari zaman dahulu.


Screenshot (abaikan query SQL pada gambar-gambar ini, mereka salah. Ini untuk memberitahu Anda sebagian besar ke mana harus mencari)

Peramban Basis Data SQLite Peramban Basis Data SQLite Peramban Basis Data SQLite

Terimakasih untuk ;):

ᔕᖺᘎᕊ
sumber
Untuk keamanan tambahan, Anda mungkin ingin membuat salinan (cadangan) dari database sebelum melakukan ini.
Bob
Juga, jika Anda ingin melakukan ini dengan benar, Anda juga harus menghapus dari moz_placessetiap entri yang tidak lagi memiliki yang sesuai place_id.
Bob
Maaf, maksud saya hapus darimoz_historyvisits
Bob
@ Bob Dan place_iddi moz_historyvisits= iddi moz_places?
ᔕᖺᘎᕊ
Seharusnya. Ada dua cara untuk mengatasinya: 1. delete from 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...) atau 2. setelah clearing moz_places, Anda dapat menghapus dari moz_historyvisitssemua entri yang tidak memiliki entri yang sesuai . Saya lebih suka opsi 1 secara pribadi. Jangan menggunakannya tanpa pengujian; SQL saya agak berkarat, dan saya belajar dengan pgsql, bukan sqlite. Anda mungkin benar-benar dapat menghapus dari keduanya sekaligus, biar uji.
Bob