Каким бы не был веб-проэкт, информацию, которую он предоставляет необходимо где-то хранить. И тут возникает главный вопрос, что же для этого выбрать: полноценную базу данных или ограничиться простыми текстовыми файлами? В данной статье я расскажу о преимуществах и недостатках того или иного способа хранения данных.
Постараюсь отойти от надоевшей классики изложения, где информация преподносится в виде по-пунктного «размусоливания» всех возможностей и недостатков сначала одного метода, а затем другого с итоговым подытоживанием всех за и против. Свой рассказ я построю в простом разговорном стиле, проводя параллели между одним и вторым способом хранения единиц и нолей. И так, начнем!
А с чего же начинать? Как говорится: «с самого начала», а для начала необходимо разобраться, что из себя представляет база данных (БД). Уверен, о текстовых файлах (ТФ) всем известно.
Не буду углубляться в типы и разновидности БД, а также СУБД (систем управления базами данных), кому будет интересно – Гугл в помощь, благо информации в сети хоть отбавляй. А, по сути, то это не что иное, как совокупность таблиц (в нашем случае – текстовых файлов), объединенных в один физический файл базы данных.
В БД информация хранится в табличном виде. А как же быть с файлом, если он обычный, текстовый? Но тут, оказывается, все просто. В ТФ информацию можно записать тоже в виде таблицы, псевдо, разумеется, разделив будущие поля каким-либо редко используемым символом, например, вертикальной чертой, тильдой, знаком табуляции и т.д. Я же рекомендую использовать именно знак табуляции. Почему? Об этом чуть позже. Таким образом, мы можем создать псевдо-табличный текстовый файл.
Прежде чем начать работу с «хранителями данных» их надо создать и заполнить какой-то информацией. Что касается текстового файла, то тут все просто: правая кнопка мыши – создать файл, и так столько – сколько нужно. Инфу «забиваем», например, в обычном «Блокноте». Кстати, как упоминалось ранее, используя в текстовых файлах как разделитель знак табуляции, файл легко импортируется (экспортируется) в электронную таблицу Excel для еще более удобного редактирования или же заполнения.
С БД дела обстоят намного сложнее. Что бы создать структуру необходимо обратится «за помощью» к стороннему ПО, например, небезызвестному «phpMyAdmin» (в котором предстоит еще разобраться): создать таблицы, в них разметить поля, этим полям присвоить типы, короче, «головняк», чего не скажешь о текстовиках.
Будем считать, что у нас уже все создано и заполнено, можно начинать работу с ними. Перед тем, как ее начать, БД или ТФ необходимо подключить. Это не сложный процесс, существенной разнице в трудоемкости я не вижу, поэтому останавливаться на нем не вижу смысла. Поговорим лучше о более важном. И так, по порядку.
Чтение информации. Разница в трудоемкости реализации обоих методов невелика. В варианте с БД при выводе информации используются всевозможные запросы, обработку которых «берет на себя» сам SQL. Что касается варианта с текстовиками, то любой алгоритм, хоть и не сложный, приходится писать самому. Также, «плюс» БД в том, что информацию без проблем можно вывести в отсортированном или отфильтрованном виде.
Но, пути методов расходятся, когда речь заходит о записи или удалении. Используя БД, мы составляем SQL-запрос, где указываем, какую позицию перезаписать (удалить) или же куда вставить новую запись. Сложнее обстоят дела с текстовыми файлами. Дописать в конец файла еще можно, но вот как «засунуть» что-то в середину или начало? Для этого приходится часть файла «загонять» в переменную, потом дописывать или удалять то, что нам необходимо, ну и, напоследок, «прикреплять» остаток файла. Я бы не сказал, что это на много сложнее, просто по-другому.
Процесс вроде бы и не сложный, с «программерской» точки зрения, но есть одно «но» – время обработки запроса. Как известно, текстовые файлы на порядок уступают базе данных. При небольших объемах информации эта разница очень мизерна и не будет заметна даже при слабом Интернете. Но, представим, что у нас файл с десятком тысяч записей, а на сайте сотни посетителей. «Гонять» файл в цикле от начала до конца не то, что не практично, а еще и «долго».
Но не все так печально с текстовиками. Они снова «берут верх», когда речь заходит о наполнении или редактировании. Об этом уже упоминалось, так что повторяться не стану. Замечу лишь еще одну «прелесть», используя их, можно легко обойтись без админ-панели сайта, внося изменения прямо в стандартной хостинг-панели. А перенос сайта с одного хостинга на другой сводится к простому «копи-пасту».
Подводя итоги нельзя сказать что хуже, а что лучше. Оба метода будут жить и развиваться и далее, параллельно. Хочу лишь разграничить. Если разрабатывается сайт-визитка, небольшой каталог или другой средний сайт, то я рекомендую использовать именно текстовые файлы. Ибо хранимая информация более-менее статична, не подлежит частому редактированию, а если что-либо и добавляется, то, как правило, в конец файла. Что касается Интернет-магазина, крупного сайта-каталога или веб-портала, то тут, безусловно, предпочтение ложится на базу данных. Так как оперировать с большим объемом данных намного проще, удобнее и быстрее, а стандартный набор SQL-запросов вообще сделает половину работы за вас.