Firefox & sqlite
Опубликовано yarodin на 10/03/2009
Понимаю, что к вечеру уже будет чудовищный баян, но не могу удержаться:
cd ~/.mozilla/firefox/(id).(your_profile_name) && sqlite3 places.sqlite "vacuum;"
Результаты дает просто чудодейственные. У меня, например, размер БД уменьшился всего на 2мб и то firefox стал пошустрее ворочаться, а у некоторых людей и на 200 и на 300 мб…
Update: Более комплексное решение:
find ~/.mozilla/firefox/ \( -name '*.db' -o -name '*.sqlite' \) -print0|xargs -0 -t -I vv sqlite3 vv "vacuum;"
Update 2: Как мне правильно указали в коментариях, можно и еще проще:
find ~/.mozilla/firefox/ \( -name '*.db' -o -name '*.sqlite' \) -print -exec sqlite3 {} "vacuum;" \;
Cucumber сказал
У меня тоже уменьшилось на 2 метра. Кавычки vacuum; не те в посте
yarodin сказал
Спасибо. WP неправильно кавычки автоматом заменяет – разбираемся.
yarodin сказал
Исправил. Визуальный редактор – зло.
proton сказал
SQL error: database is locked =(
/me ушел читать man sqlite
proton сказал
Приношу извинения, не закрыл Firefox =)
anon сказал
баян же
http://www.gettingclever.com/2008/06/vacuum-your-firefox-3.html
scarface.deb сказал
а я вот не знал, спасибо
stanislav сказал
Спасибо!
antage сказал
А почему бы не написать:
find ~/.mozilla/firefox/ \( -name '*.db' -o -name '*.sqlite' \) -exec sqlite3 {} "vacuum;" \;yarodin сказал
Хотябы потому, что даже внутри этого тэга кавычки все равно заменяются в постах автоматом на неправильные? :)
На самом деле тут есть свой шорткод sourcecode как мне подсказали в саппорте, вечером буду тестировать.
Livid сказал
ИМХО вопрос в другом: нафига нужен xargs?
yarodin сказал
Для того для чего и всегда… Чтобы не споткнуться на возможных пробелах в имени базы какого-то из расширений? Т.е. перестраховка конечно, но я предпочитаю в дальнейшем использовать без неожиданностей. Ну и мелкая приятность – полный путь к бд пропечатывается – сразу понятно на какой из бд не удалось вакуумизацию провести.
antage сказал
find вполне нормально отрабатывает пробелы в именах файлов и директорий:
$ find ..
./a b c
./a b c/adfadf adsfads adfasdf.txt
./abc
./abc/1 bbb.txt
$ find . -exec ls -l {} \;итого 0
drwxr-xr-x 2 antage antage 23 2009-03-11 12:03 abc
drwxr-xr-x 2 antage antage 39 2009-03-11 12:03 a b c
итого 0
-rw-r--r-- 1 antage antage 0 2009-03-11 12:03 adfadf adsfads adfasdf.txt
-rw-r--r-- 1 antage antage 0 2009-03-11 12:03 ./a b c/adfadf adsfads adfasdf.txt
итого 0
-rw-r--r-- 1 antage antage 0 2009-03-11 12:03 1 bbb.txt
-rw-r--r-- 1 antage antage 0 2009-03-11 12:03 ./abc/1 bbb.txt
А если нужно, чтобы печатались имена обрабатываемых файлов – есть ключик
-print.yarodin сказал
Хмм. действительно, вы правы. У меня остались какие-то ложно старобсдшные воспоминания по поводу find/exec.
yarodin сказал
Вобщем надо все шеловое наследие засевшее в голове 5-6 лет назад переосмыслить … с открытым маном :)
yarodin сказал
http://www.sunmanagers.org/pipermail/summaries/2005-March/006255.html
Пишут, что xargs якобы сильно производительнее :)
juev сказал
Провел данную операцию и всю базу закладок delicious на компе убил (осталось только несколько закладок). Пришлось синхронизироваться с сервером для получения всех закладок.
Разницы не заметил от проведения данной операции, помимо описанной проблемы.
yarodin сказал
Единственное, что на мой взгляд может привести к подобному эффекту это изменение ROWID после вакуумизации таблицы с записями без определенного INTEGER PRIMARY KEY. Но все равно эффект странный. Если BD закладок от этого расширения не зело огромная и не зело секретная, можете прислать мне ее на iamyarodin.info, посмотрю на досуге.
juev сказал
хмм… я не разберусь никак, какой файл отвечает за базу данного расширения…
yarodin сказал
Дайте ссылку на расширение тогда.
juev сказал
http://delicious.com/help/installff
yarodin сказал
Расширение называется Delicious Bookmarks, повторить описанный вами эффект на последней версии 2.1.018 не получилось.
База называется ybookmarks.sqlite, структура абсолютно стандартная.
juev сказал
На последней теперь работает, потому как была изменена структура базы, а точнее был совершен переход на новый ее тип. Спасибо!
yarodin сказал
iam-at-yarodin.info