12.07.2015 Views

Февраль

Февраль

Февраль

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ХАКЕР.PROСергей Супрунов/ amsand@rambler.ru /Скулы на рингеСравнительное описание процесса установки и настройки двух популярных СУБДВ мире свободных программ так повелось: мы говорим «база данных» — подразумеваем мускуль». А чемнам, спрашивается, не угодила Postgre SQL, открытая (даже более открытая, чем MySQL), свободная, с мощнейшейфункциональностью? Кто-то скажет — сложная; кто-то — тяжелая; кто-то — что тормозит. Но всегдали высокая скорость — самое главное? И правда ли то, что поставить ее сложнее, чем совладатьс «дельфинчиком»? Вот в этом мы и попытаемся сегодня разобраться…ИнсталляцияДля чистоты эксперимента обе СУБД ставитьбудем из исходников. Если приложение естьв менеджере пакетов твоей системы (мнепока еще не попадались такие, где не былобы MySQL или PostgreSQL), то лучше устанавливатьоттуда. Так и с обновлениемменьше проблем, и отслеживать зависимостипроще — а то попробуй потом какому-нибудьRoundCube докажи, что СУБД у тебя ужеесть. Но поскольку «официальная» инсталляцияникаких проблем вызвать не должна (скомандовать«aptitude install mysql-server-5.0» или«portinstall postgresql-server» особого трудане составит), то мы пойдем по пути наибольшегосопротивления.Итак, разжившись архивами с исходнымкодом свежих версий (сразу бросаетсяв глаза соотношение их размеров — 24 МбMySQL 5.0.27 против 10 Мб PostgreSQL8.2.0; а еще говорят, что постгрестяжелый), потратим несколько минут на изучениеопций конфигурации, чтобы не было потоммучительно больно… Как обычно, полный списокдоступных опций можно просмотреть, введяв полученном после распаковки тарболакаталоге следующую команду:$ ./configure --helpВ случае с MySQL первое, на что следует обратитьвнимание, — это кодировка, которуюСУБД будет использовать по умолчанию.Поскольку latin1 нас вряд ли устроит, нужнобудет указать опцию '--with-charset' в соответствиис твоей кодировкой (скорее всего, это будетkoi8r, cp1251 или utf8). Если ты планируешьработать в дальнейшем с несколькими кодовымистраницами, то дополнительные кодировкиукажи в опции '--with-extra-charsets'. Чтобысебя ни в чем не ограничивать, можешь задатьсразу '--with-extra-charsets=all'.Вторая вещь, не совсем привычная дляпользователей, работавших ранее с другимиСУБД, — возможность выбрать типтаблиц. MySQL поддерживает целую вереницуразличных движков на все случаижизни: BDB, InnoDB, MyISAM, HEAP... Первыедва — Berkeley DB (разработчик — SleepycatSoftware, ныне принадлежащий Oracle)и InnoDB (опять-таки купленный Oracle) — являютсятранзакционными. Это обеспечиваетвысокую надежность работы с данными (БДне потеряет согласованность в случае возникновенияпрограммного или аппаратногосбоя, и существует возможность восстановитьили откатить незавершенные операции) и позволяетобъединять логически связанные измененияв БД в атомарные (транзакционные)блоки, фиксирующиеся в базе по принципу«все или ничего». Таблицы MyISAM не поддерживаюттранзакции, что обеспечивает имболее высокую скорость работы, но меньшуюнадежность. Таблицы HEAP размещаютсяв оперативной памяти, благодаря чему работаюточень быстро, но, естественно, несохраняют данные при сбоях. С учетом рядадругих ограничений HEAP-таблицы удобноиспользовать для временных данных, но для«нормальной» работы они мало пригодны.Если ты точно знаешь, какой тип таблиц тебенужен, то можно при сборке СУБД указать толькоих. Обычно в таких случаях рекомендуютиспользовать MyISAM там, где ради скоростиможно пожертвовать всеми данными, и InnoDBдля остальных задач.Перейдем к PostgreSQL. С языками здесь чуть проще— эта СУБД не будет напрягать тебя по поводудефолтных кодировок и т.д. Единственное, чтоможно сделать, — это указать в '--enable-nls'перечень языков, на которых система будетс тобой общаться.А вот над чем можно задуматься, так это надсписком языков программирования. Их можноиспользовать для разработки триггеров, хранимыхпроцедур и прочих прелестей. PostgreSQLподдерживает несколько языков на твой выбор— «из коробки» можно включить поддержкуPL/Tcl, PL/Perl и PL/Python, вдогонку к стандартномуPL/pgSQL; также поддерживаютсяPHP и Java.Опции '--with-krb5', '--with-pam' и '--with-ldap'позволяют включить поддержку дополнительныхспособов авторизации, что можетбыть очень полезно для работы в локальнойсети, когда требуется обеспечить предельнуюгибкость и прозрачность при работе пользователейс базой. Также подумай сразу, нужна литебе поддержка безопасных соединений/ 154xàêåð 02 /98/ 07

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!