Как уже заявлялось ранее, наша система «Е1 Евфрат» обеспечивает возможность единовременной работы сразу с несколькими различными СУБД, реализуя принцип кроссплатформенности.
Первой реляционной СУБД (не считая, конечно, СУБД НИКА) с которой удалось обеспечить интеграцию стала Microsoft SQL Server 2005/2008. Эта СУБД показала себя как наиболее универсальная и не проблемная. Для быстроты поиска и для решения задач интеграции информационных систем через СУБД структурированные данные документа раскладываются в соответствующие схеме поля таблиц реляционной базы. XML возможности MS SQL Server показали худшую производительность в поисковых запросах. Для полнотекстового поиска используются встроенные возможности СУБД.
Вторым этапом мы подключили Oracle. С точки зрения функциональности там было все не плохо, но мы замучались с администрированием. Кроме этого на простом железе на объемах около миллиона документов MS SQL Server прилично выигрывает в производительности.
Далее была добавлена поддержка MySQL. С точки зрения администрирования было все хорошо. На небольших объемах нас очень порадовала скорость. Неприятность нас ждала с полнотекстовым поиском. Нас интересовал движок InnoDB, но полнотекстового поиска в текущей версии 5.5 там нет. В разрабатываемой сейчас версии 5.6 заявлена поддержка полнотекстовых индексов для InnoDB, но без русской морфологии. Все лучше, чем ничего. Мы опробовали версию 5.6, но сервер СУБД валится на операциях обновления схемы, на таблицах с полнотекстовыми индексами. Использование Sphinx для легковесного коробочного решения показалось нам слишком громоздким. В текущем варианте остановились на LIKE запросах, с выходом релиза 5.6 перейдем на полнотекстовые индексы в InnoDB, для проектных решений видится Sphinx.
Будем держать в курсе о развитии возможностей Е1 на тех или иных СУБД.
Автор: cognitech