Важным элементом архитектуры e-commerce сайта или торговой системы является подсистема управления данными (database engine). Именно здесь собираются и надлежащим образом структурируются данные обо всех товарах, каталогах, ценах, пользователях и т.п. Все рассматриваемые e-commerce платформы предполагают использование на этом уровне какой-то системы управления базами данных (СУБД) общего назначения.
В мире существуют разные мнения и пристрастия к использованию различных СУБД, рассмотрение которых не имеет особого смысла без детального понимания условий эксплуатации, объемов данных и собственно без привязки к конкретной e-commerce платформе, которая поддерживает вполне определенный перечень вариантов СУБД. При этом в зависимости от класса платформы и с учетом применяемых программных решений для web-сервера и сервера приложений имеет смысл подходить и к выбору СУБД.
Поддерживаемые СУБД для разных e-commerce платформ
Платформа | СУБД |
---|---|
IBM WebSphere Commerce | IBM DB2, Oracle1, Apache Derby (при разработке) |
Oracle Commerce | Oracle, MSSQL2, IBM DB23, MySQL2 (при разработке) |
SAP hybris4 | Oracle, MSSQL, SAP HANA DB, MySQL, Percona XtraDB Cluster |
1С-Битрикс: Управление сайтом | MySQL, Oracle5, MSSQL5 |
Magento | MySQL (в т.ч. Percona) |
VirtueMart6 | MySQL |
1 IBM WebSphere Commerce реализует поддержку СУБД Oracle не для всех возможных платформ. В ряде случаев (к примеру, для IBM Power Systems или System z) поддерживается только IBM DB2.
2 Oracle Commerce поддерживает MSSQL и MySQL только при использовании JBoss или Oracle WebLogic в качестве сервера приложений.
3 Oracle Commerce поддерживает IBM DB2 только при использовании IBM WebSphere или JBoss в качестве сервера приложений.
4 Дополнительно SAP hybris предполагает использование MongoDB для целей агрегации данных и внутренних нужд.
5 1С-Битрикс: Управление сайтом поддерживает СУБД Oracle и MSSQL только в редакции Enterprise.
6 Хотя CMS Joomla сама по себе и может развертываться на базе СУБД MSSQL, но для успешного использования VirtueMart такая конфигурация не подходит.
При выборе СУБД для вашего решения следует помнить, что на нее распространяются все требования по безопасности, мониторингу, резервированию и восстановлению после сбоев. Расширенные возможности кластеризации, кэширования и виртуализации также в какой-то мере определяются и возможностями используемой СУБД. Для систем enterprise-класса следует помнить и о зависимости характеристик и возможностей СУБД от используемого оборудования и операционной среды. Такие компании, как IBM или Oracle, предлагают все больше комплексных программно-аппаратных решений (таких как Oracle Exadata Database Machine или набор IBM DB2 + IBM Blue Acceleration + IBM Power Systems), которые обеспечивают высочайшие показатели производительности и надежности.
В системах нижнего уровня (для малого и среднего бизнеса), которые ориентированы на использование MySQL, следует помнить, что эта СУБД тоже поддерживает несколько систем хранения данных (database engines), не говоря уже о разнообразных форках самой MySQL. И если для 1-Битрикс: Управление сайтом и VirtueMart в целом пригодны разные системы (MyISAM или InnoDB), то для Magento уже обязательно требуется InnoDB или Percona XtraDB. В общем случае предпочтительнее избегать использования MyISAM, т.к. при высоких нагрузках в системах с большим числом параллельных запросов наблюдается заметное снижение производительности и высокая нестабильность в работе.