Blog Micro в развитии: от текстовых файлов к SQLite

Я уже писал, что первая версия скрипта Blog Micro (впрочем, тогда у него ещё не было названия), работала без использования какой-либо базы данных - на обычных текстовых файлах. В файлы писалась вся информация о блоге: даты, id записи, текст поста, урл картинки и прочее. В отдельный текстовый файл писались комментарии. Такая схема была удобна для меня, по началу, исключительно в силу моего незнания. Я просто не был в курсе, как работать с базами данных в PHP, т.ч. шаг был вынужденный - ради экономии времени.

Скрипт блога был дописан, и успешно работал какое-то время, но в процессе его "эксплуатации" стало понятно, что у текстовых файлов в качестве базы данных, есть свои недостатки. Самым основным является отсутствие простой возможности делать выборки - для каждый, даже самой простейшей операции, нужно было пройти по всем записям базы, что безусловно, очень неудобно. То ли дело выборки SELECT в SQL синтаксисе - одной строчкой можно сделать то, что в варианте с текстовой базой превращалось в немаленький кусок кода. Итак, стало понятно, что нужна нормальная база данных! Но какая?

Первое, что приходило в голову - вездесущий "мускуль" (MySQL, если по-научному). Но я уже имел с ним дело, в качестве пользователя, и мне он, скажем прямо, не очень то и нравился. Во-первых, мне хотелось избежать привязки к клиент-серверной модели, не то, чтобы она меня раздражала сама по себе, скорее её реализация. Перенос маленького сайтика с хоста на хост, мало того, что достаточно трудоёмок, но ещё мог стать источником неожиданного гимора. Например, с кодировками. Мне ни к чему такой огромный выбор кодировок, я понимаю что будущее за Unicode, и наличие поддержки одной лишь UTF-8 меня бы полностью устроило.

В итоге гугл привёл меня, к доселе неизвестному проекту - SQLite. Проект открытый, бесплатный и на словах обещал много вкусного - в том числе сочетание синтиксиса SQL и "скрытой" реализации клиент-серверной модели. По сути, для PHP разработчика это выглядит как flatfile база данных с SQL языком - просто отлично! На деле же, у SQLite баз есть несколько ограничений, которые могут быть критичными для больших и распределённых проектов, но совершенно не важны, если мы говорим о блоге. К примеру, особенности реализации не позволяют писать в базу SQLite более, чем одному процессу одновременно, т.к. на время записи файл с базой просто блокируется. Это, очевидно, может стать проблемой для тяжёлых многопользовательских приложений, но повторюсь - в нашем случае, когда речь идёт о движке для блога, это абсолютно не актуально.

Итак, в качестве базы данных был выбран SQLite2, вторая версия, считающаяся устаревшей (текущая версия на сегодня, это 3.7.5), но тем не менее, я выбрал именно её. Она не сильно проигрывает SQLite3 в быстродействии, и что самое важное, библиотека SQLite2 компилируется в составе PHP, т.е. речь идёт именно о нативной поддержке - без необходимость установки каких-либо дополнительных компонентов. Думаю, когда-нибудь я переведу скрипт Blog Micro на третью версию SQLite (это не так уж и сложно), но это точно не является приоритетной задачей, т.к. и вторая отлично справляется со своей работой.

Теги:
Пётр
19 Декабря 2011
14:54
А как быть с тем, что от SQLite2 отказываются в новых сборках PHP? Будет на 3 версию переход?
Alex
5 Августа 2011
13:46
А так я решил её сам же, но хотел бы увидеть ваш вариант решения =)
Alex
5 Августа 2011
13:43
Кажется, письмо не дошло =( проверил все папки. Вы же на gmail ответили? Если не затруднит, перешлите пожалуйста ещё разок =)
touch [admin]
5 Августа 2011
13:12
Ага, посмотрел. Ответил в мыло.
Alex
5 Августа 2011
09:34
touch, посмотри пожалуйста на это

http://forum.php.su/topic.php?forum=75&topic=1871

(я столкнулся с проблемой при чтении файлов в сортированном виде) Подскажи пожалуйста, если не трудно.
Alex
3 Августа 2011
07:01
Спасибо!
touch [admin]
3 Августа 2011
06:45
Да, сказать честно, особых материалов я и не знаю :) Есть официальные спецификации от самих разработчиков flatfile баз. Там вроде всё понятно, в-целом. Вот например:
TextDB
cbd
TinyCBD
Alex
2 Августа 2011
16:30
Доброго дня, админ! Пожалуйста, подскажи материал по созданию сайта на файлах (какой знаешь)

Ваше имя:

Ваш e-mail:


Текст:



Введите строку с картинки: