语境:
我已经使用 Firefox 配置文件好几年了。自然而然,我的历史文件变得非常庞大。我在我的主台式电脑和笔记本电脑之间设置了 Firefox Sync。
硬件配置:
- PC:i5-3450、8 GB DDR3 RAM、Crucial M4 128 GB SSD
- 笔记本电脑:奔腾 SU4100、4 GB DDR3 RAM、WD 5400 rpm HDD
尽管配置不错,但当我在台式机的 Awesome Bar 中输入内容时,访问历史记录条目需要很长时间,笔记本电脑的速度甚至更慢。体验相当迟钝。
我想如果我稍微清理一下历史记录,我可能会避免创建新的配置文件来加快速度。
问题本身:
为了显示:
有没有办法删除所有访问次数少于 x(比如说 5)次且最近访问时间少于 y(比如说 120)天的历史记录条目?
据我所知,历史文件是某种 SQL 数据库,但我不太清楚数据是如何保存的,是否有“安全的方式”来编辑它,以及执行我需要的操作的查询是什么样的。
我继续浏览以前的超级用户问题,看看是否可以找到相关信息。
在我的 Firefox 配置文件目录中,有一个名为的文件
places.sqlite
。使用 sqlite 打开它会显示(其中包括)表moz_places
和moz_historyvisits
。似乎moz_historyvisits
使用的主键moz_places
来引用 URL。
由于我不熟悉数据库,所以我不太明白引文中提到的两个表之间的关系。
部分表格的截图
我注意到visit_count
是标准格式,这样使用起来很方便。last_visit_date
肉眼看来是加密的,但我看不出是加密的。
希望这能有所帮助,我已经束手无策了。
答案1
经过一些研究(请参阅最后的“参考资料”),我想出了这种(有点)简单的解决方案:
请先备份。 请先关闭 Firefox
这需要您编辑SQLite数据库(一个独立的 SQL 数据库;请参阅维基百科文章) 通过查询来查找满足条件的所有记录(在您的例子中 - 浏览次数少于 5 次和过去 120 天内未访问过)。
请先备份。 请先关闭 Firefox
说明开始:
这有效(已在我的 Firefox v. 29.0.1 上测试并运行)。只需 12 个简单步骤:
打开它
单击“打开数据库”
C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]
根据需要导航至编辑备份以下文件第一的!!
places.sqlite
从您在步骤 4 中打开的目录中打开。严重地,备份第一的!!
单击执行 SQL 选项卡。
输入:
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)
替换
x(2)
为 5(在您的示例中)2014-04-01
用2014-05-30
您想要的日期范围替换按下蓝色的播放按钮。
检查显示的站点是否正确(应该是,但要仔细检查!)
如果是,则将上述代码的前两行替换为:
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 天。
欲了解更多信息,请查看这个维基百科文章出来,或这将时间和纪元时间相互转换的网站。
截图(忽略这些图片上的 SQL 查询,它们是错误的。这些主要是告诉您应该在哪里查看)
谢谢 ;):
- 如何为 Firefox places.sqlite 的 SQLite 管理器编写 SQL 查询?
- 需要帮助提取特定日期的历史记录(Firefox 支持论坛)
- SQL DELETE 语句(w3schools)
- 如何解码 places.sqlite db 中的 Last_Date_ Visited 字段?(Firefox 支持论坛)