Системы управления: без денег
АрхивПохоже, время статических веб-страниц уходит.
Похоже, время статических веб-страниц уходит. Появляется все больше и больше способов автоматизировать наполнение и отображение сайта. Если представляемая информация имеет достаточно четкую структуру, хорошим тоном считается хранить ее в базе данных, откуда ее можно в необходимом качестве и количестве извлечь самыми разными инструментами. Посмотрим, какие из традиционных СУБД используются в веб-приложениях и какие из них реально получить в распоряжение у хостинг-провайдера.
Для начала немного статистики. Из первой двадцатки хостинг-провайдеров в каталоге сайта Hostobzor.ru шестнадцать предлагают MySQL, шесть — PostgresSQL, трое — MS SQL, двое — MS Access. В некотором приближении такой расклад характерен для российских (и не только) хостеров. Последние две позиции, конечно, актуальны только для размещения на Windows-платформе. Первые две — размещаются в основном на Linux и FreeBSD. Именно они и используются чаще всего — причиной тому, в частности, бесплатность как ОС, так и самих СУБД.
Исторически сложилось, что по частоте использования в Интернет-проектах MySQL идет на первом месте. Она идеально подходит для «наколенных» приложений: простая в установке, легко администрируемая, быстрая на не очень больших наборах данных (и на больших тоже — это сильно зависит от вида SQL-запросов). Однако отсутствие в MySQL некоторых важных возможностей не позволяет считать эту систему «взрослой» СУБД: проверки ссылочной целостности данных, транзакции и вложенные запросы, а также репликация и полнотекстовое индексирование появились только в последних версиях и, по слухам, пока работают не очень устойчиво.
PostgreSQL с самого начала задумывалась как правильная во всех отношениях СУБД. Большим ее достоинством является почти полная поддержка стандарта ANSI SQL-92, а также хорошо реализованная возможность определяемых пользователем типов данных. Интересны массивы и геометрические типы со встроенными функциями для них. У MySQL типы данных, похожие на SQL 92, могут вести себя иначе, нежели описано в стандарте.
Postgre поддерживает транзакции, в том числе и по группам запросов, подзапросы, триггеры, хранимые процедуры, — в общем, вполне серьезная система, и притом бесплатная. К традиционным ее недостаткам относят низкую скорость работы. Однако именно к традиционным — седьмые версии ведут себя заметно лучше.
В Интернете полным-полно сторонников, даже фанатиков обеих СУБД. Результаты тестов тоже можно найти. Tim Perdue1, один из основателей проекта SourceForge.net («цех» разработчиков софта с открытыми исходниками), подверг MySQL и PostgreSQL испытаниям2, поставив их в максимально приближенные к реальным условия (оговорюсь, реальные для своего проекта).
При этом выяснилось, что MySQL при пятнадцати запросах в секунду становится практически неработоспособной, PostgreSQL же при некоторой медлительности, тем не менее, более устойчива к большим нагрузкам при той же аппаратно-программной конфигурации сервера и может обеспечивать просмотр 400 тысяч страниц в сутки, выдерживая также и кратковременные «сверхплановые» всплески посещаемости.
Резюме относительно этих двух СУБД может быть такое:
= обе бесплатны и активно поддерживаются программистским сообществом;
= обе пригодны и достаточно быстры для большинства веб-задач;
= обе непрерывно развиваются и, весьма вероятно, в будущем сойдутся в какой-то «точке».
Прежде чем сделать выбор между ними, нужно оценить потребности проекта, прикинуть посещаемость, все это «на вырост». Проблема бывает в том, что хостинг с MySQL найти гораздо легче — его даже бесплатно предлагают, не говоря уж о платных площадках. PostgreSQL же предлагается редко и в основном в «верхних» тарифных планах3.
Такова вкратце ситуация с бесплатными базами данных. Коммерческие СУБД в Интернет-проектах представлены в основном MS SQL и Oracle. Причем если первую можно найти почти на всех хостинг-площадках под Windows, то вторая пока экзотична, но ситуация непрерывно меняется. Предоставление сервера баз данных в пользование через Интернет — это всего лишь одно из лиц популярной сейчас модели ASP (Application Service Provider), в рамках которой пользователю (в нашем случае — веб-разработчику) не нужно покупать и устанавливать у себя дорогостоящее и сложнонастраиваемое ПО. Все это за него сделает ASP, настроит и предоставит доступ — за деньги, разумеется. И Microsoft, и Oracle (не только они, конечно) проводят в этом направлении весьма гуманную ценовую политику, поэтому многие хостинг-провайдеры будут предлагать и уже предлагают клиентам использовать в своих разработках разные, в том числе очень дорогие и мощные инструменты.
В заключение хотелось бы напомнить, что средства разработки нужно выбирать, сообразуясь с реальной необходимостью: ложка хороша к обеду, и базы данных — не панацея. Зачастую «пациент» увлекается динамичными страницами с запросами к SQL-серверу по поводу и без, а это — пустая нагрузка и лишний трафик. И не надо тревожиться о том, как поведет себя база при 500 тысячах посетителей в день, если предел мечтаний у нас — 20 тысяч . Наконец, не надо забывать, что всякий инструмент бессилен, если использовать его не по назначению.
1 У меня рука не поднимается написать его имя по-русски, я же приличная девушка.
2 www.phpbuilder.com/columns/tim20000705. php3?page=1. — Прим. ред.