Переводы — PostgreSQL vs. MySQL
Оригинал
Традиционно, сравнение PostgreSQL и MySQL с обеих сторон подогревается фанатиками. Это технически сильные, открытые базы данных с большим количеством установок. Однако, на самом деле, редко какая-то из сильных сторон любой из них дает явное преимущество при выборе.
Как только люди понимают сильные стороны каждого продукта, сразу становится ясно, что именно им нужно. Для того, чтобы правильно оценить преимущества PostgreSQL и MySQL, давайте взглянем на их историю и "родословную" и рассмотрим их функциональность и производительность, а так же требования для успешного разворачивания базы данных предприятия.
Историческая справка
Сообщество PostgreSQL — самое старое, крупное и быстрорастущее в своём роде. Разработка PostgreSQL началась в 1985, в университете Беркли, Калифорния в качестве эволюции проекта Ingres. После нескольких лет в институтских кругах он был выпущен в мир Open Source. Сообщество стало процветать и сейчас насчитывает более тысячи разработчиков и 30000 активных участников.
Главное преимущество большого сообщества — это взаимодействие между пользователями и разработчиками, благодаря которой пользователи могут напрямую участвовать в создании новых возможностей. Такое разностороннее сообщество - это модель, к которой стремятся многие open-source сообщества.
Сообщество MySQL, в свою очередь, было создано в коммерческом мире. MySQL начала свое существование в 1994 году в Швеции из-за потребности в скоростной базе данных для веб-сайтов. Несколько лет спустя она была выпущена в мир open-source под контролем MySQL AB. Именно это помогло MySQL стать одной из самых широко используемых баз данных в мире (что привело к приобретению MySQL AB компанией Sun в 2008 году). Популярность MySQL также сыграла важную роль в том, что Европейская комиссия одобрила в рамках ЕС сделку по приобретению Sun корпорацией Oracle, которая завершилась в начале этого года.
Возможности и функции PostgreSQL
PostgreSQL считается самой продвинутой свободной БД на рынке. Такая репутация сложилась за десятки лет разработки. В качестве полнофункциональной, свободной реляционной БД (RDBMS), PostgreSQL обладает многими характеристиками, спроектированными для поддержки критически-важных приложений с большим потоком транзакций.
Основное преимущество PostgreSQL — безопасное и защищённое хранилище данных. Это начинается с контроля подключений к БД, с использованием промышленных механизмов типа LDAP или Kerberos. Для усиления безопасности, после авторизации вся связь с БД может идти через защищённый канал SSL.
Для поддержания корректного состояния, описываемого в бизнес-логике, во время добавления или изменения данных, PostgreSQL контролирует исполнение установленных пользователем ограничений, от простых проверок до более сложного контроля корректности внешних ключей (Foreign Key - столбец или комбинация столбцов таблицы БД, используемая в качестве первичного ключа для таблицы другой БД - прим.перев.). Как только данные записаны на диск, возможность создания и, что даже более важно, загрузки резервной копии становится критичной. В PostgreSQL есть простая система резервных копий, которая работает в составе большого механизма откатов (Point-in-Time Recovery, PITR), позволяя администраторам быстро восстанавливать работу после сбоев.
Благодаря модулям расширения, остальные группы могут создавать более продвинутые решения для основной архитектуры PostgreSQL. Идеальный пример - геопространственная поддержка в PostreSQL. Она встроена с помощью модуля PostGIS, обычного расширения PostgreSQL. Это расширение добавляет PostreSQL самую лучшую геопространственную поддержку независимо от того, какого типа база - свободная или проприетарная.
Другое расширение добавляет PostreSQL поддержку различных языков для хранимых процедур. Теперь разработчики могут писать серверные программы на любом удобном для них языке. Скажем, триггер, выполняющий сложную обработку текста, можно написать на Perl, используя мощную функциональность регулярных выражений этого языка.
Возможности и функции MySQL
Благодаря своей простоте и производительности, MySQL - самая популярная открытая база данных. С самого начала MySQL была предназначена для вебсайтов и обеспечивала быструю индексацию данных в хранилищах и оптимизацию последовательного доступа (движок ISAM). Такой тип рабочей нагрузки, с преобладающими операциями чтения и большим количеством мелких запросов, послужил причиной внедрения кеша запросов, который еще больше увеличивает производительность MySQL. Упор на производительность привел к таким решениям как MySQL Cluster, который позволяет масштабировать базу данных более чем на один физический сервер.
PostgreSQL не единственная база данных, позволяющая расширять функциональность с помощью внешних расширений. Одной из самых сильных сторон MySQL является механизм подключаемых хранилищ. MyISAM, хранилище по умолчанию в MySQL, обеспечивает производительность среды с преимущественным чтением, InnoDB обеспечивает надежные транзакции, необходимые для приложений, выполняющих много операций записи.
Кроме того, существует множество сторонних хранилищ, таких как Brighthouse и DB2, которые добавляют ещё больше возможностей MySQL. Такая гибкость позволяет администраторам настраивать их MySQL так, как это нужно для конкретных таблиц. Например, для таблиц, в которых преобладают операции чтения, таких как таблица кодов стран, лучше использовать хранилище MyISAM, а для таблиц с транзакциями, как таблица с заказами, лучше использовать InnoDB.
И хотя у PostgreSQL и MySQL особая репутация в плане поддержки особых типов приложений, у обеих широкий спектр использования.
Например, PostgreSQL известна своими возможностями в коммерческих транзакционных приложениях, хотя она так же используется во многих веб-приложениях.
С другой стороны, MySQL — традиционно мощная база данных для веб-приложений, так же используется в приложениях, требующих поддержку транзакций. Главное, что обе довольно гибкие в применении, но любая из них может быть лучше в техническом или бизнес плане, с учетом индивидуальных обстоятельств.
Сообщество во главе
Самое большое различие между PostgreSQL и MySQL может быть вообще не техническим. Проекты с открытым исходным кодом, по определению, основываются на сообществах. Сообщество разработчиков, которое создаёт и содействует open-source проектам, даёт им жизнь. Фактически, есть два типа open-source сообществ.
Первый тип - это полностью открытые проекты баз данных, которые организованы вокруг независимых и самоподдерживаемых сообществ. У PostgreSQL — старейшее и крупнейшее независимое open-source сообщество такого типа. Преимущество таких сообществ это реальная независимость от поставщика (вендора).
Второй тип open-source сообщества может иметь поставщика, который контролирует проект, и проект может быть "купленным" в перспективе. Скажем, MySQL. Проект изначально был основан и контролировался MySQL AB, коммерческой компанией, которая занималась всеми ключевыми разработками и архитектурой MySQL. Потом управление сообществом MySQL перешло к Sun, а в настоящее время — к Oracle.
Лицензия
Лицензирование, или условия изменения и распространения исходного кода, может существенно повлиять на выбор open-source базы данных. Лицензия PostgreSQL создана на подобии лицензии BSD, которая разрешает изменения кода; он может быть открыт на усмотрение автора.
Эта открытая лицензия идеальна для поставщиков ПО, которые хотят использовать PostgreSQL как часть своих решений. Так как лицензия PostgreSQL не обязывает открывать код производных решений, поставщик может выбрать, открывать ли исходный код, если это соответсвует его бизнесс-модели.
MySQL распространяется под лицензией GNU GPL и контролируется Oracle. GNU GPL более свободна в вопросе открытия кода производных решений и поощряет свободное распространение кода. Это защищает авторов оригинального кода, вынуждая так же распространять производные решения под лицензией GNU GPL.
Заключение
Все сравнения MySQL и PostgreSQL начинаются с того, что обе — реляционные базы данных с открытым исходным кодом, но на этом их сходства заканчиваются. Каждая из них имеет свои области применения, которые только в некоторых случаях совпадают. Другими словами, это высококачественные базы данных, которые следует рассматривать как альтернативу дорогим проприетарным продуктам, особенно в условиях современного экономического кризиса.
Джим Млодгенски является Chief Architect в EnterpriseDB. Он один из первых сотрудников EnterpriseDB, который начал работать в компании в мае 2005 года. На протяжении этих лет Джим был ответственным за ключевые виды деятельности, такие как технология продаж, профессиональные услуги, стратегические технологические решения, доставку и обучение клиентов. До работы в EnterpriseDB, Джим был партнером и разработчиком в компании Fusion Technologies, которая предоставляла технологические услуги. Почти десять лет Джим разрабатывал начальные наброски и концепции для консультационных проектов в Fusion, и специализировался на разработке приложений, работающих с Oracle, веб-разработке и открытых информационных структурах. С ним можно связаться по адресу .
Оригинал (английский): PostgreSQL vs. MySQL: How to Select the Right Open-Source Database
Перевод: © Инициативная группа welinux.ru settler, mhspace, wiz, Zereal, K-9.
Традиционно, сравнение PostgreSQL и MySQL с обеих сторон подогревается фанатиками. Это технически сильные, открытые базы данных с большим количеством установок. Однако, на самом деле, редко какая-то из сильных сторон любой из них дает явное преимущество при выборе.
Как только люди понимают сильные стороны каждого продукта, сразу становится ясно, что именно им нужно. Для того, чтобы правильно оценить преимущества PostgreSQL и MySQL, давайте взглянем на их историю и "родословную" и рассмотрим их функциональность и производительность, а так же требования для успешного разворачивания базы данных предприятия.
Историческая справка
Сообщество PostgreSQL — самое старое, крупное и быстрорастущее в своём роде. Разработка PostgreSQL началась в 1985, в университете Беркли, Калифорния в качестве эволюции проекта Ingres. После нескольких лет в институтских кругах он был выпущен в мир Open Source. Сообщество стало процветать и сейчас насчитывает более тысячи разработчиков и 30000 активных участников.
Главное преимущество большого сообщества — это взаимодействие между пользователями и разработчиками, благодаря которой пользователи могут напрямую участвовать в создании новых возможностей. Такое разностороннее сообщество - это модель, к которой стремятся многие open-source сообщества.
Сообщество MySQL, в свою очередь, было создано в коммерческом мире. MySQL начала свое существование в 1994 году в Швеции из-за потребности в скоростной базе данных для веб-сайтов. Несколько лет спустя она была выпущена в мир open-source под контролем MySQL AB. Именно это помогло MySQL стать одной из самых широко используемых баз данных в мире (что привело к приобретению MySQL AB компанией Sun в 2008 году). Популярность MySQL также сыграла важную роль в том, что Европейская комиссия одобрила в рамках ЕС сделку по приобретению Sun корпорацией Oracle, которая завершилась в начале этого года.
Возможности и функции PostgreSQL
PostgreSQL считается самой продвинутой свободной БД на рынке. Такая репутация сложилась за десятки лет разработки. В качестве полнофункциональной, свободной реляционной БД (RDBMS), PostgreSQL обладает многими характеристиками, спроектированными для поддержки критически-важных приложений с большим потоком транзакций.
Основное преимущество PostgreSQL — безопасное и защищённое хранилище данных. Это начинается с контроля подключений к БД, с использованием промышленных механизмов типа LDAP или Kerberos. Для усиления безопасности, после авторизации вся связь с БД может идти через защищённый канал SSL.
Для поддержания корректного состояния, описываемого в бизнес-логике, во время добавления или изменения данных, PostgreSQL контролирует исполнение установленных пользователем ограничений, от простых проверок до более сложного контроля корректности внешних ключей (Foreign Key - столбец или комбинация столбцов таблицы БД, используемая в качестве первичного ключа для таблицы другой БД - прим.перев.). Как только данные записаны на диск, возможность создания и, что даже более важно, загрузки резервной копии становится критичной. В PostgreSQL есть простая система резервных копий, которая работает в составе большого механизма откатов (Point-in-Time Recovery, PITR), позволяя администраторам быстро восстанавливать работу после сбоев.
Благодаря модулям расширения, остальные группы могут создавать более продвинутые решения для основной архитектуры PostgreSQL. Идеальный пример - геопространственная поддержка в PostreSQL. Она встроена с помощью модуля PostGIS, обычного расширения PostgreSQL. Это расширение добавляет PostreSQL самую лучшую геопространственную поддержку независимо от того, какого типа база - свободная или проприетарная.
Другое расширение добавляет PostreSQL поддержку различных языков для хранимых процедур. Теперь разработчики могут писать серверные программы на любом удобном для них языке. Скажем, триггер, выполняющий сложную обработку текста, можно написать на Perl, используя мощную функциональность регулярных выражений этого языка.
Возможности и функции MySQL
Благодаря своей простоте и производительности, MySQL - самая популярная открытая база данных. С самого начала MySQL была предназначена для вебсайтов и обеспечивала быструю индексацию данных в хранилищах и оптимизацию последовательного доступа (движок ISAM). Такой тип рабочей нагрузки, с преобладающими операциями чтения и большим количеством мелких запросов, послужил причиной внедрения кеша запросов, который еще больше увеличивает производительность MySQL. Упор на производительность привел к таким решениям как MySQL Cluster, который позволяет масштабировать базу данных более чем на один физический сервер.
PostgreSQL не единственная база данных, позволяющая расширять функциональность с помощью внешних расширений. Одной из самых сильных сторон MySQL является механизм подключаемых хранилищ. MyISAM, хранилище по умолчанию в MySQL, обеспечивает производительность среды с преимущественным чтением, InnoDB обеспечивает надежные транзакции, необходимые для приложений, выполняющих много операций записи.
Кроме того, существует множество сторонних хранилищ, таких как Brighthouse и DB2, которые добавляют ещё больше возможностей MySQL. Такая гибкость позволяет администраторам настраивать их MySQL так, как это нужно для конкретных таблиц. Например, для таблиц, в которых преобладают операции чтения, таких как таблица кодов стран, лучше использовать хранилище MyISAM, а для таблиц с транзакциями, как таблица с заказами, лучше использовать InnoDB.
И хотя у PostgreSQL и MySQL особая репутация в плане поддержки особых типов приложений, у обеих широкий спектр использования.
Например, PostgreSQL известна своими возможностями в коммерческих транзакционных приложениях, хотя она так же используется во многих веб-приложениях.
С другой стороны, MySQL — традиционно мощная база данных для веб-приложений, так же используется в приложениях, требующих поддержку транзакций. Главное, что обе довольно гибкие в применении, но любая из них может быть лучше в техническом или бизнес плане, с учетом индивидуальных обстоятельств.
Сообщество во главе
Самое большое различие между PostgreSQL и MySQL может быть вообще не техническим. Проекты с открытым исходным кодом, по определению, основываются на сообществах. Сообщество разработчиков, которое создаёт и содействует open-source проектам, даёт им жизнь. Фактически, есть два типа open-source сообществ.
Первый тип - это полностью открытые проекты баз данных, которые организованы вокруг независимых и самоподдерживаемых сообществ. У PostgreSQL — старейшее и крупнейшее независимое open-source сообщество такого типа. Преимущество таких сообществ это реальная независимость от поставщика (вендора).
Второй тип open-source сообщества может иметь поставщика, который контролирует проект, и проект может быть "купленным" в перспективе. Скажем, MySQL. Проект изначально был основан и контролировался MySQL AB, коммерческой компанией, которая занималась всеми ключевыми разработками и архитектурой MySQL. Потом управление сообществом MySQL перешло к Sun, а в настоящее время — к Oracle.
Лицензия
Лицензирование, или условия изменения и распространения исходного кода, может существенно повлиять на выбор open-source базы данных. Лицензия PostgreSQL создана на подобии лицензии BSD, которая разрешает изменения кода; он может быть открыт на усмотрение автора.
Эта открытая лицензия идеальна для поставщиков ПО, которые хотят использовать PostgreSQL как часть своих решений. Так как лицензия PostgreSQL не обязывает открывать код производных решений, поставщик может выбрать, открывать ли исходный код, если это соответсвует его бизнесс-модели.
MySQL распространяется под лицензией GNU GPL и контролируется Oracle. GNU GPL более свободна в вопросе открытия кода производных решений и поощряет свободное распространение кода. Это защищает авторов оригинального кода, вынуждая так же распространять производные решения под лицензией GNU GPL.
Заключение
Все сравнения MySQL и PostgreSQL начинаются с того, что обе — реляционные базы данных с открытым исходным кодом, но на этом их сходства заканчиваются. Каждая из них имеет свои области применения, которые только в некоторых случаях совпадают. Другими словами, это высококачественные базы данных, которые следует рассматривать как альтернативу дорогим проприетарным продуктам, особенно в условиях современного экономического кризиса.
Джим Млодгенски является Chief Architect в EnterpriseDB. Он один из первых сотрудников EnterpriseDB, который начал работать в компании в мае 2005 года. На протяжении этих лет Джим был ответственным за ключевые виды деятельности, такие как технология продаж, профессиональные услуги, стратегические технологические решения, доставку и обучение клиентов. До работы в EnterpriseDB, Джим был партнером и разработчиком в компании Fusion Technologies, которая предоставляла технологические услуги. Почти десять лет Джим разрабатывал начальные наброски и концепции для консультационных проектов в Fusion, и специализировался на разработке приложений, работающих с Oracle, веб-разработке и открытых информационных структурах. С ним можно связаться по адресу .
Оригинал (английский): PostgreSQL vs. MySQL: How to Select the Right Open-Source Database
Перевод: © Инициативная группа welinux.ru settler, mhspace, wiz, Zereal, K-9.