Contexto:
Estou usando meu perfil do Firefox há alguns anos. Meu arquivo de histórico se tornou enorme, naturalmente. Eu tenho o Firefox Sync configurado entre meu PC principal e meu laptop.
Configurações de HW:
- PC: i5-3450, 8 GB de RAM DDR3, SSD Crucial M4 de 128 GB
- laptop: Pentium SU4100, 4 GB de RAM DDR3, disco rígido WD 5400 rpm
O acesso às entradas do histórico ao digitar na Barra Awesome no meu desktop leva muito tempo, apesar da configuração decente, o laptop é ainda mais lento. A experiência não responde.
Imaginei que, se esclarecesse um pouco a história, evitaria criar um novo perfil para acelerar as coisas.
A questão em si:
Ilustrar:
Existe uma maneira de excluir todas as entradas do histórico que foram visitadas menos de x (digamos 5) vezes e, ao mesmo tempo, a visita recente tem menos de y (digamos 120) dias?
o arquivo de histórico é algum tipo de banco de dados SQL, mas não tenho muita certeza de como os dados são salvos, se houver uma "maneira segura" de editá-lo e como será a consulta para fazer o que eu preciso.
Continuei navegando pelas perguntas anteriores do Superusuário para ver se encontrava informações relevantes.
No meu diretório de perfil do Firefox, há um arquivo chamado
places.sqlite
. A abertura com o sqlite revela (entre outros) as tabelasmoz_places
emoz_historyvisits
. Parece quemoz_historyvisits
usa o principal demoz_places
para se referir aos URLs.
Como não estou familiarizado com bancos de dados, não entendo realmente como as duas tabelas mencionadas na citação estão relacionadas.
captura de tela de uma parte das tabelas
Notei que o arquivo visit_count
está em um formato padrão, facilitando o trabalho. Os last_visit_date
olhares criptografados a meu olho nu, mas não consigo ver de que maneira.
Espero que ajude, estou no meu juízo.
fonte
Respostas:
Com alguma pesquisa (veja no final para 'referências'), eu vim com essa (tipo de) solução simples:
BACKUP PRIMEIRO. FECHAR FIREFOX PRIMEIRO
Isso requer que você edite o Banco de Dados SQLite (um banco de dados SQL independente; consulte o artigo da Wikipedia ) do Mozilla Firefox, fazendo uma consulta para encontrar todos os registros que satisfazem a condição (no seu caso - visualizada menos de 5 vezes e não visitada no últimos 120 dias).
BACKUP PRIMEIRO. FECHAR FIREFOX PRIMEIRO
Início das instruções:
Isso funciona (testado e funcionando com o meu Firefox v. 29.0.1). Em 12 etapas fáceis (ish):
Instalar o navegador de banco de dados SQLite
Abra
Clique em Abrir banco de dados
Navegue para a
C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[PROFILE]
edição conforme necessárioBACKUP DO ARQUIVO SEGUINTE PRIMEIRO !!
Abra
places.sqlite
no diretório que você abriu na etapa 4.SÉRIO, BACKUP PRIMEIRO !!
Clique na guia Executar SQL.
Digite o seguinte:
Substitua
x(2)
para 5 (no seu exemplo)Substitua
2014-04-01
e2014-05-30
pelo intervalo de datas desejadoPressione o botão azul de reprodução.
Verifique se os sites exibidos estão corretos (deveriam estar, mas verifique!)
Se estiverem, substitua as duas primeiras linhas do código acima por:
para que seu código se pareça com:
FEITO! Feche o programa e clique em Salvar ao fechar.
Fim das instruções
E o que dizer
last_visit_date
?Eu não chamaria isso de 'criptografado' (embora eu não discorde de que parece criptografado). É apenas em outro 'sistema'. A data está no
Unix
sistema de horas (ouEpoch
/POSIX
). É o número de segundos que se passaram desde 00:00:00 (UTC) em 1º de janeiro de 1970. 1 hora é 3600 segundos. 1 ano é 31556926 dias.Para mais informações. consulte este artigo da Wikipedia ou este site que converte o tempo de e para a época.
Capturas de tela (ignore as consultas SQL nessas imagens, elas estão erradas. Estas são para lhe dizer principalmente onde procurar)
Graças a ;):
fonte
moz_places
quaisquer entradas que não tenham mais um correspondenteplace_id
.moz_historyvisits
place_id
emmoz_historyvisits
=id
inmoz_places
?moz_historyvists
primeira (delete from moz_historyvisits as hv left join moz_places as p on hv.place_id = p.id where p.visit_count...
) ou 2. após a limpezamoz_places
, você pode excluir demoz_historyvisits
qualquer entrada que não possua a entrada correspondente . Eu prefiro a opção 1 pessoalmente. Não o use sem testar; meu SQL está um pouco enferrujado e aprendi com pgsql, não com sqlite. Você pode, na verdade, ser capaz de excluir os dois ao mesmo tempo, teste de lemme.