Firefox 29 - ฉันจะลบรายการประวัติที่เข้าชมน้อยกว่า x ครั้งได้อย่างไร


11

บริบท:

ฉันใช้โปรไฟล์ Firefox มาหลายปีแล้ว ไฟล์ประวัติของฉันใหญ่ขึ้นอย่างเป็นธรรมชาติ ฉันตั้งค่า Firefox Sync ไว้ระหว่างเดสก์ท็อปพีซีหลักกับแล็ปท็อปของฉัน

HW configs:

  • PC: i5-3450, RAM DDR3 8 GB, Crucial M4 128 GB SSD
  • แล็ปท็อป: Pentium SU4100, DDR3 RAM 4 GB, WD 5400 รอบต่อนาที HDD

การเข้าถึงรายการประวัติเมื่อพิมพ์ลงใน Awesome Bar บนเดสก์ท็อปของฉันใช้เวลานานแม้จะมีการกำหนดค่าที่เหมาะสมแลปท็อปก็ยิ่งช้าลง ประสบการณ์ไม่ตอบสนองค่อนข้าง

ฉันคิดว่าถ้าฉันล้างประวัติเล็กน้อยฉันอาจหลีกเลี่ยงการสร้างโปรไฟล์ใหม่เพื่อเร่งความเร็วสิ่งต่างๆ

คำถามตัวเอง:

เพื่อแสดง:

ประวัติศาสตร์

มีวิธีลบรายการประวัติทั้งหมดที่มีการเยี่ยมชมน้อยกว่า x (สมมติว่า 5) ครั้งและในเวลาเดียวกันการเยี่ยมชมล่าสุดน้อยกว่า y (สมมุติ 120 วัน) หรือไม่

afaik ไฟล์ประวัติเป็นฐานข้อมูล SQL บางชนิด แต่ฉันไม่แน่ใจจริงๆว่าข้อมูลถูกบันทึกอย่างไรหากมี "วิธีที่ปลอดภัย" ในการแก้ไขและแบบสอบถามที่จะทำในสิ่งที่ฉันต้องการจะเป็นอย่างไร


ฉันท่องไปตามคำถาม SuperUser ก่อนหน้าเพื่อดูว่าฉันสามารถค้นหาข้อมูลที่เกี่ยวข้องได้หรือไม่

ในไดเรกทอรีโปรไฟล์ของฉัน Firefox places.sqliteมีไฟล์ชื่อ เปิดกับ SQLite เผย (อื่น) ตารางและmoz_places moz_historyvisitsดูเหมือนว่าmoz_historyvisitsจะใช้หลักของmoz_placesเพื่ออ้างถึง URL

เนื่องจากฉันไม่คุ้นเคยกับฐานข้อมูลฉันจึงไม่เข้าใจวิธีที่ทั้งสองตารางที่กล่าวถึงในใบเสนอราคาสัมพันธ์กัน

สกรีนช็อตของส่วนหนึ่งของตาราง places_sqlite

ฉันสังเกตเห็นว่าvisit_countมันอยู่ในรูปแบบมาตรฐานทำให้ง่ายต่อการทำงานด้วย last_visit_dateลักษณ์เข้ารหัสเพื่อตาเปล่าของฉัน แต่ฉันไม่สามารถมองเห็นในทางที่

หวังว่าจะช่วยได้ฉันอยู่ในจุดสิ้นสุดของปัญญา


ในการตอบคำถามของคุณตามคำตอบนี้ Firefox ใช้ SQL ในความเป็นจริง ฉันแนะนำให้ใช้ SQLLite แล้วเริ่มจากตรงนั้น
AStopher

คุณลองทำอะไรจนถึงตอนนี้ ก่อนที่คุณจะดำเนินการต่อคุณสามารถยืนยันได้หรือไม่ว่าโปรไฟล์ Firefox ใหม่เอี่ยมจะมอบประสบการณ์การใช้งาน Snappier โดยเฉพาะบนแล็ปท็อป
and31415

1
ฉันเพิ่งโพสต์คำตอบที่มีข้อมูลใหม่ สำหรับความรวดเร็วไม่ฉันไม่ได้ลอง แต่ฉันจำได้อย่างชัดเจนว่า Awesome Bar นั้นสนุกมากเมื่อโปรไฟล์ค่อนข้างใหม่
lousyuser

ดังนั้นคุณเห็นการปรับปรุงประสิทธิภาพใด ๆ หลังจากล้างประวัติของคุณหรือไม่ - แก้ไข: โอ๊ะโอ: ฉันเห็นแล้วว่าคุณได้แสดงความคิดเห็นกับคำตอบที่เลือกและคุณสังเกตเห็นการปรับปรุงที่ดี
ndemou

คำตอบ:


9

ด้วยการวิจัยบางอย่าง (ดูที่ท้ายสำหรับ 'การอ้างอิง') ฉันได้คิดวิธีแก้ปัญหาง่ายๆ (ชนิด):


สำรองแรก ปิดไฟร์ฟอกซ์เฟิร์ส


สิ่งนี้ต้องการให้คุณแก้ไขฐานข้อมูลSQLite (ฐานข้อมูล SQL ในตัวเองดูบทความ Wikipedia ) ของ Mozilla Firefox โดยทำแบบสอบถามเพื่อค้นหาระเบียนทั้งหมดที่ตรงตามเงื่อนไข (ในกรณีของคุณ - ดูน้อยกว่า 5 ครั้งและไม่ได้เยี่ยมชมใน 120 วันล่าสุด)


สำรองแรก ปิดไฟร์ฟอกซ์เฟิร์ส

คำแนะนำเริ่มต้น:


สิ่งนี้ใช้ได้ (ผ่านการทดสอบและทำงานกับ Firefox เวอร์ชัน 29.0.1 ของฉัน) ใน 12 ขั้นตอนง่าย (ish):

  1. ติดตั้งเบราว์เซอร์ฐานข้อมูล SQLite

  2. เปิด

  3. คลิกเปิดฐานข้อมูล

  4. นำทางไปC:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]แก้ไขตามต้องการ

    สำรองไฟล์ต่อไปนี้เป็นครั้งแรก !!

  5. เปิดplaces.sqliteจากไดเรกทอรีที่คุณเปิดในขั้นตอนที่ 4

    อย่างจริงจังสำรองแรก !!

  6. คลิกที่แท็บ Execute 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. หากเป็นเช่นนั้นให้แทนที่สองบรรทัดแรกของรหัสด้านบนด้วย:

    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) เป็นจำนวนวินาทีที่ผ่านไปตั้งแต่ 00:00:00 (UTC) 1 มกราคม 1970 1 ชั่วโมงคือ 3600 วินาที 1 ปี 31556926 วัน

สำหรับข้อมูลเพิ่มเติม ตรวจสอบบทความWikipediaนี้หรือเว็บไซต์นี้ที่แปลงเวลาไปและกลับจากกาลเวลา


สกรีนช็อต (ละเว้นการสืบค้น SQL ของรูปภาพเหล่านี้มันผิดพวกนี้ส่วนใหญ่จะบอกคุณว่าจะหาที่ไหน)

เบราว์เซอร์ฐานข้อมูล SQLite เบราว์เซอร์ฐานข้อมูล SQLite เบราว์เซอร์ฐานข้อมูล SQLite

ขอบคุณ;):


เพื่อความปลอดภัยที่เพิ่มขึ้นคุณอาจต้องการทำสำเนา (สำรอง) ของฐานข้อมูลก่อนดำเนินการ
บ๊อบ

นอกจากนี้ถ้าคุณต้องการที่จะทำเช่นนี้ได้อย่างถูกต้องคุณควรลบออกจากmoz_placesรายการใด ๆ place_idที่ไม่ได้มีความสอดคล้องกัน
บ๊อบ

ขออภัยฉันหมายถึงการลบจากmoz_historyvisits
Bob

@Bob และplace_idในmoz_historyvisits= idในmoz_places?
ᔕᖺᘎᕊ

ควรจะเป็น. มีสองวิธีที่จะจัดการกับมันคือ 1. ลบจาก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 ของฉันค่อนข้างเป็นสนิมและฉันเรียนรู้ด้วย pgsql ไม่ใช่ sqlite คุณอาจจะสามารถลบออกจากทั้งสองพร้อมกันในทันทีทดสอบ lemme
Bob
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.