yarodin

Путь задрота™

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;" \;

24 коммент. к “Firefox & sqlite”

  1. Cucumber сказал

    У меня тоже уменьшилось на 2 метра. Кавычки vacuum; не те в посте

  2. proton сказал

    SQL error: database is locked =(
    /me ушел читать man sqlite

  3. anon сказал

    баян же
    http://www.gettingclever.com/2008/06/vacuum-your-firefox-3.html

  4. scarface.deb сказал

    а я вот не знал, спасибо

  5. stanislav сказал

    Спасибо!

  6. 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.

  7. juev сказал

    Провел данную операцию и всю базу закладок delicious на компе убил (осталось только несколько закладок). Пришлось синхронизироваться с сервером для получения всех закладок.
    Разницы не заметил от проведения данной операции, помимо описанной проблемы.

    • yarodin сказал

      Единственное, что на мой взгляд может привести к подобному эффекту это изменение ROWID после вакуумизации таблицы с записями без определенного INTEGER PRIMARY KEY. Но все равно эффект странный. Если BD закладок от этого расширения не зело огромная и не зело секретная, можете прислать мне ее на iamyarodin.info, посмотрю на досуге.

    • yarodin сказал

      iam-at-yarodin.info

Добавить комментарий

XHTML: Вы можете использовать эти метки: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>