Firefox 29 - làm cách nào để xóa các mục lịch sử đã truy cập ít hơn x lần


11

Bối cảnh:

Tôi đã sử dụng hồ sơ Firefox của tôi trong một vài năm nay. Tập tin lịch sử của tôi đã trở nên rất lớn, một cách tự nhiên. Tôi đã cài đặt Firefox Sync giữa máy tính để bàn chính và máy tính xách tay của mình.

Cấu hình CTNH:

  • PC: i5-3450, RAM 8 GB DDR3, SSD quan trọng M4 128 GB
  • máy tính xách tay: Pentium SU4100, RAM 4 GB DDR3, ổ cứng WD 5400 vòng / phút

Truy cập các mục lịch sử khi gõ vào Awesome Bar trên máy tính để bàn của tôi mất khá nhiều thời gian mặc dù cấu hình khá, máy tính xách tay thậm chí còn chậm hơn. Trải nghiệm khá không phản hồi.

Tôi hình dung nếu tôi xóa lịch sử lên một chút, tôi có thể tránh việc tạo một hồ sơ mới để tăng tốc mọi thứ.

Câu hỏi:

Để minh họa:

lịch sử

Có cách nào để xóa tất cả các mục lịch sử đã được truy cập ít hơn x (giả sử 5) lần và đồng thời, lần truy cập gần đây ít hơn y (giả sử là 120) ngày không?

afaik tệp lịch sử là một loại cơ sở dữ liệu SQL, nhưng tôi không thực sự chắc chắn làm thế nào dữ liệu được lưu, nếu có "cách an toàn" để chỉnh sửa nó và truy vấn để làm những gì tôi cần sẽ như thế nào.


Tôi tiếp tục duyệt qua các câu hỏi SuperUser trước đó để xem liệu tôi có thể tìm thấy thông tin liên quan không.

Trong thư mục hồ sơ Firefox của tôi, có một tệp có tên places.sqlite. Mở nó với sqlite tiết lộ (trong số những người khác) các bảng moz_placesmoz_historyvisits. Có vẻ như moz_historyvisitssử dụng chính của moz_placesđể chỉ các URL.

Vì tôi không quen thuộc với cơ sở dữ liệu, tôi thực sự không hiểu cách hai bảng được đề cập trong trích dẫn có liên quan.

ảnh chụp màn hình của một phần của bảng địa điểm

Tôi đã nhận thấy visit_countnó có định dạng chuẩn, giúp bạn dễ dàng làm việc. Các last_visit_datehình mã hóa để mắt thường của tôi, nhưng tôi không thể nhìn thấy trong đó chiều.

Hy vọng rằng sẽ giúp, tôi ở cuối trí thông minh của tôi.


Để trả lời một trong những câu hỏi của bạn, theo câu trả lời này , Firefox thực tế sử dụng SQL. Tôi khuyên bạn nên bắn lên SQLLite và đi từ đó.
AStopher

Bạn đã thử những gì cho đến nay? Trước khi tiếp tục, bạn có thể xác nhận rằng một cấu hình Firefox hoàn toàn mới cung cấp trải nghiệm snappier, đặc biệt là trên máy tính xách tay không?
và31415

1
Tôi vừa đăng một câu trả lời có chứa một số thông tin mới. Về phần snappiness, không, tôi chưa từng thử, nhưng tôi nhớ rõ rằng Awesome Bar còn hấp dẫn hơn nhiều khi hồ sơ còn khá mới (và lịch sử không bị xáo trộn bởi nhiều mục), cả trên máy tính xách tay và máy tính để bàn.
lousyuser

Vì vậy, bạn đã thấy bất kỳ cải thiện hiệu suất sau khi xóa lịch sử của bạn? - chỉnh sửa: oops: Tôi thấy bây giờ bạn đã nhận xét về câu trả lời đã chọn và bạn đã nhận thấy sự cải thiện tuyệt vời.
ndemou

Câu trả lời:


9

Với một số nghiên cứu (xem phần cuối của 'tài liệu tham khảo'), tôi đã đưa ra giải pháp đơn giản (loại) này:


BACKUP ĐẦU TIÊN. ĐÓNG FIREFOX ĐẦU TIÊN


Điều này yêu cầu bạn chỉnh sửa Cơ sở dữ liệu SQLite (cơ sở dữ liệu SQL độc lập; xem bài viết Wikipedia ) của Mozilla Firefox bằng cách thực hiện truy vấn để tìm tất cả các bản ghi thỏa mãn điều kiện (trong trường hợp của bạn - được xem ít hơn 5 lần không được truy cập trong 120 ngày qua).


BACKUP ĐẦU TIÊN. ĐÓNG FIREFOX ĐẦU TIÊN

Hướng dẫn bắt đầu:


Điều này hoạt động (đã thử nghiệm và làm việc với Firefox v. 29.0.1 của tôi). Trong 12 bước dễ dàng (ish):

  1. Cài đặt trình duyệt cơ sở dữ liệu SQLite

  2. Mở nó ra

  3. Nhấp vào Mở cơ sở dữ liệu

  4. Điều hướng để C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]chỉnh sửa theo yêu cầu

    TRỞ LẠI TẬP TIN FOLLOWING ĐẦU TIÊN !!

  5. Mở places.sqlitetừ thư mục bạn đã mở ở bước 4.

    NGHIÊM TÚC, BACKUP ĐẦU TIÊN !!

  6. Nhấp vào tab Thực thi SQL.

  7. Nhập cái này:

    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. Thay thế x(2)thành 5 (trong ví dụ của bạn)

  9. Thay thế 2014-04-012014-05-30với phạm vi ngày bạn muốn

  10. Nhấn nút play màu xanh.

  11. Kiểm tra xem các trang web được hiển thị có đúng không (nhưng nên kiểm tra lại!)

  12. Nếu có, sau đó thay thế hai dòng đầu tiên của đoạn mã trên bằng:

    DELETE
    FROM moz_places
    

    vì vậy mã của bạn trông giống như:

    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)
    

LÀM XONG! Đóng chương trình và bấm lưu khi đóng.

Hướng dẫn kết thúc


Thế còn last_visit_date?

Last_visit_date trông được mã hóa bằng mắt thường, nhưng tôi không thể nhìn theo cách nào.

Tôi sẽ không gọi nó là 'được mã hóa' (mặc dù tôi không đồng ý rằng nó trông được mã hóa). Nó chỉ là trong một "hệ thống" khác. Ngày nằm trong Unixhệ thống thời gian (hoặc Epoch/ POSIX). Đó là số giây đã trôi qua kể từ 00:00:00 (UTC) ngày 1 tháng 1 năm 1970. 1 giờ là 3600 giây. 1 năm là 31556926 ngày.

Để biết thêm thông tin. kiểm tra bài viết Wikipedia này hoặc trang web này chuyển đổi thời gian đến và từ thời gian kỷ nguyên.


Ảnh chụp màn hình (bỏ qua các truy vấn SQL trên những hình ảnh này, chúng sai. Chúng là để cho bạn biết hầu hết nơi cần tìm)

Trình duyệt cơ sở dữ liệu SQLite Trình duyệt cơ sở dữ liệu SQLite Trình duyệt cơ sở dữ liệu SQLite

Nhờ vào ;):


Để bảo mật hơn, bạn có thể muốn tạo một bản sao (sao lưu) cơ sở dữ liệu trước khi thực hiện việc này.
Bob

Ngoài ra, nếu bạn muốn làm điều này đúng cách, bạn cũng nên xóa khỏi moz_placesbất kỳ mục nào không còn có tương ứng place_id.
Bob

Xin lỗi, tôi có nghĩa là xóa từmoz_historyvisits
Bob

@Bob Và place_idtrong moz_historyvisits= idtrong moz_places?
ᔕᖺᘎᕊ

Nên là. Có hai cách để xử lý nó: 1. xóa từ moz_historyvists đầu tiên ( delete from moz_historyvisits as hv left join moz_places as p on hv.place_id = p.id where p.visit_count...) hoặc 2. sau khi xóa moz_places, bạn có thể xóa khỏi moz_historyvisitsbất kỳ mục nào không có mục tương ứng . Tôi thích tùy chọn 1 cá nhân. Đừng sử dụng nó mà không thử nghiệm; SQL của tôi khá thô sơ và tôi đã học với pssql chứ không phải sqlite. Bạn thực sự có thể có thể xóa từ cả hai cùng một lúc, thử nghiệm.
Bob
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.