Последние пару недель делаю новый проект. Проект никак не связан с WordPress. Пишу всё с нуля. Использовать MySQL не хотелось. Сначала начал всё писать на файлах. Но потом вдруг подумалось, что давно я слышал о SQLite, как о неком промежуточном инструменте между MySQL и файлах. Решил попробовать его. И вы знаете – SQLite очень понравилось.

SQLite удачно сочетает несколько преимуществ:

  1. Он не требует сервера. Достаточно лишь поддержки в PHP ( а PHP 5 поддерживает SQLite по умолчанию, но только PHP 5.3 понимает SQLite3 !!! ). При работе с SQLite файл базы данных создается в заданной директории. Легко переносится копированием. Не нужно никаких извратов с дампами, бэкапами и прочим. Просто скопировали файлик и всё. Это супер.
    SQLite 3
  2. При этом SQLite поддерживает весь функционал MySQL который я когда либо, использовал. Миграция с MySQL на SQLite для тех небольших проектов над которыми я работаю крайне проста. Синтаксис запросов тот же. Правда это касается третьей версии SQLite. Со второй все несколько хуже в этом смысле. Но о недостатках напишу ниже отдельно.
  3. Для SQLite существует отличный аналог PHPMyAdmin в виде плагина к FireFox – SQLite Manager ( найдете его в репозитории ). Правда тут опять ограничения в виде работы только с SQLite версии 3. С SQLite2 он не работает. Этот плагин отлично поддерживает русские шрифты. Кодировка в SQLite по умолчанию UTF-8. Если все таки нужно работать с SQLite2 то есть программка SQLite Administrator , она вполне себе работает с SQLite2, но не поддерживает кириллицу. Причем интерфейс на русском есть, а в базе кириллица отображается кракозябрами. Но я благополучно стал использовать SQLite3 и потому об этой программе забыл.

    SQLite Manager - плагин для WordPress

    SQLite Manager - плагин для WordPress

Но есть в SQLite и недостатки.

Вернее недостаток который я заметил он один. Этот недостаток связан с разной совместимостью версий. Дилемма вобщем то одна. Вторая версия MySQL поддерживает синтаксис SQL с некоторыми ограничениями. К примеру ALTER TABLE, IF EXISTS, IF NOEXISTS – не поддерживаются во второй версии и работают в третьей. Казалось бы используй третью да и всё. Но как оказалось версия PHP 5.2 третью версию не поддерживает. Да через PDO работает, но синтаксис другой. А хостингов, особенно шаредов с PHP 5.2 сейчас полно, да и долго ещё будет полно. Jino вот как пример. Там через PDO работает, без него нет. Таким образом если использовать SQLite в релизах для конечников, то либо придется накладывать ограничения на хостинг ( и сильные ведь ограничения ), либо программировать с учетом разных возможностей, что отчасти геморрой.
Но для моих текущих задач SQLite вполне подошел. На денвере оно работает, на вдсках PHP 5.3 есть и всё хорошо.

3 октября 2011 |

2 Комментариев к “Разбираюсь с SQLite”

  1. Роман 1 марта, 2013

    Подскажите, как использовать SQLite Manager в firefox?
    Где его открывают? Установил, а как попасть в GUI не пойму.

  2. Azzrael 1 марта, 2013

    Включите панель дополнений. Там будет синий значок. Это как раз кнопка SQLite Manager.

Есть что сказать по теме статьи? Пожалуйста - пишите!