Firefox 29 - 如何删除访问次数少于x次的历史记录条目


10

语境:

我已经使用我的Firefox配置文件已有几年了。我的历史档案自然变得庞大。我在主桌面PC和笔记本电脑之间设置了Firefox Sync。

硬件配置:

  • PC:i5-3450,8 GB DDR3 RAM,Crucial M4 128 GB SSD
  • 笔记本电脑:奔腾SU4100,4 GB DDR3内存,WD 5400转硬盘

在我的桌面上输入Awesome Bar时访问历史记录条目需要相当长的时间,尽管配置不错,笔记本电脑甚至更慢。这种体验反应迟钝。

我想如果我把历史记录稍微清理一下,我可能会避免创建一个新的配置文件来加快速度。

问题本身:

为了显示:

history

有没有办法删除访问次数少于x(比如5次)的所有历史记录条目,同时最近的访问次数少于y(比如120天)?

afaik历史文件是某种SQL数据库,但我不确定如何保存数据,如果有一个“安全的方法”来编辑它以及查询要做什么我需要的样子。


我一直浏览以前的SuperUser问题,看看能不能找到相关信息。

在我的Firefox配置文件目录中,有一个名为的文件 places.sqlite。用sqlite打开它会显示(除其他外)表格 moz_placesmoz_historyvisits。看起来 moz_historyvisits 使用主要的 moz_places 引用URL。

由于我不熟悉数据库,我并不真正理解引用中提到的两个表的相关方式。

部分表格的屏幕截图 places_sqlite

我注意到了 visit_count 采用标准格式,易于使用。该 last_visit_date 我的肉眼看起来很加密,但我看不出以哪种方式。

希望有所帮助,我在我的智慧结束。


回答你的一个问题 这个答案 ,Firefox确实使用SQL。我建议启动SQLite并从那里开始。
cybermonkey

你到目前为止做了什么?在继续之前,您能否确认一个全新的Firefox配置文件确实提供了更快捷的体验,尤其是在笔记本电脑上?
and31415

1
我刚刚发布了一个包含一些新信息的答案。至于快活,不,我没有尝试过,但我清楚地记得,当笔记本电脑和桌面上的配置文件相当新时(以及许多条目整齐的历史)时,Awesome Bar更加快捷。
lousyuser

那么在清除历史记录后,您是否看到了任何性能提升? - 编辑:oops:我现在看到你对选定的答案发表了评论,你确实注意到了很大的进步。
ndemou

Answers:


8

通过一些研究(最后参见'参考文献'),我提出了这种(某种)简单的解决方案:


备份第一。 首先关闭FIREFOX


这需要你编辑 SQLite的 数据库(一个独立的SQL数据库;请参阅 维基百科文章 )通过查询来查找满足条件的所有记录(在您的情况下 - 查看少于5次)的Mozilla Firefox 在过去的120天内没有访问过)。


备份第一。 首先关闭FIREFOX

说明开始:


这有效(测试并使用我的Firefox v.29.0.1)。在12个简单(ish)步骤中:

  1. 安装 SQLite数据库浏览器

  2. 打开它

  3. 单击打开数据库

  4. 导航 C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE] 根据需要编辑

    备份以下文件 第一

  5. 打开 places.sqlite 从您在步骤4中打开的目录中。

    SERIOUSLY, BACKUP 第一!!

  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. 如果是,则用以下代码替换上面代码的前两行:

    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)
    

DONE!关闭程序,关闭时单击“保存”。

说明结束


关于 last_visit_date

last_visit_time看起来是肉眼加密的,但我看不出以哪种方式。

我不会称之为“加密”(虽然我不同意它看起来是加密的)。它只是在另一个'系统'中。日期是在 Unix 时间系统(或 Epoch / POSIX )。这是自1970年1月1日00:00:00(UTC)以来经过的秒数.1小时是3600秒。 1年是31556926天。

有关更多信息。校验 这个维基百科 文章,或 这个 将时间转换为时间段的网站。


屏幕截图(忽略这些图像上的SQL查询,它们是错误的。这些是告诉你大部分在哪里看)

SQLite Database Browser SQLite Database Browser SQLite Database Browser

谢谢 ;):


为了增加安全性,您可能希望在执行此操作之前复制(备份)数据库。
Bob

此外,如果要正确执行此操作,还应从中删除 moz_places 任何不再有相应的条目 place_id
Bob

对不起,我的意思是删除 moz_historyvisits
Bob

@Bob和 place_idmoz_historyvisits = idmoz_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。您实际上可以一次性删除两个测试。
Bob
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.