Інтернет Мастерская

http://webarty.net/index.php?id=1418302880


Сравнение SQL баз данных

| источник: usanov.net

Сегодня чиркну пару слов о базах данных. Хочу просто поделится своим, сугубо личным мнением и опытом, об использовании различных баз данных. И так, базы бывают серверными и локальными, реляционными и не реляционными, поддерживающие транзакции и без них, и .т.д. и т.п.

Как показывает практика, серверные БД гораздо шустрее своих не серверных братьев. С локальными базами практически невозможно работать с таблицами под миллион записей, к слову сказать, для серверных баз это тоже не простое занятие. Тем не менее, механизмы индексации и кеширования позволяют ускорить процесс.

Все (насколько я знаю) локальные базы поддерживают только одно параллельное подключение на запись.

SQLite

Это повсеместно используемая база данных состоит из одного файла (во время работы с базой, могут создаваться другие файлы). Библиотеки доступа к базе есть на любом современном языке программирования и запускается на любой платформе. Open Source.

ACCESS

Эта база данных идет как часть MS Office. С не мне тоже приходилось работать. Как и SQLite, читать базу может несколько клиентов, писать — только один. Закрытый код и не совсем понятно соглашение. Получается, что пользоваться базой можно только в том случае если есть лицензия на приложение Office. С другой стороны, пользоваться ACCESS без установленного Office можно с помощью ODBC.

SQL Server Compact

Эта база данных как и SQLite хранит данные в одном файле, но для работы с ним требует нескольких не управляемых (unmanaged DLL) библиотек и провайдера. На первый взгляд ничем не лучше SQLite. Эта база данных присутствует в Windows Mobile и Windows Phone устройствах.

MS SQL

Это серверная база данных от Microsoft. Для написания скриптов используется Transact-SQL. В полной версии поддерживается куб (OLAP) и присутствуют функции для сбора статистики и добычи данных (data mining). Среди редакций есть бесплатная, экспресс версия — MS SQL Express.

1 поддерживаемый процессор (но может быть установлен на любой сервер),
1 Гб адресуемой памяти,
4 Гб максимальный размер базы (10 Гб для версии SQL Server 2008 R2),
Через интерфейс SQL Server Management Studio 2005 нет возможности экспорта/импорта данных (в версии 2008 эта возможность присутствует)

Oracle

Это одна из самых древних, серверных баз данных. Об этом намекают и PL-SQL и обязательные sequence-ы, которые нужно создавать в ручную к инкрементальным полям. Признаюсь, работал я с этой базой последний раз года 4 назад. Но если за 25 лет ничего кардинально не изменилось, почему должно меняется последние 5 лет? Лицензия стоит больших денег, хотя, как и у MSSQL есть Express edition — Oracle XE. Ограничения были опубликованы в Computerra.

размер базы данных до 4 Гбайт и поддержка только одного процессора и 1 Гбайт оперативной памяти.

Postgree

Серваерная база с открытым исходным кодом уровня предприятия. Нет единого разработчика. Разработка ведется усилиями нескольких разработчиков и компаний. Действительно быстрая и полнофункциональная база данных. Из других блогов и форумов ясно, что проблемы могут возникнуть в самых потенных уголках postgree. А для оптимальной производительности может требовать работы напильником. Мне нравится 

MySQL

Кто не слышал про MySQL? На самом деле MySQL объединяет в себе несколько движков хранения данных (все они имеют свои достоинства и свои недостатки). Этот пункт, вместе с простотой использования сыграл важную роль в ее популяризации. Такое ощущение, что сейчас все хостинг компании предлагают именно эту базу данных в качестве основной.

FireBird

Это бесплатный клон InterBase от Borland, сейчас существуют оба продукта. Известен наверно всем программистам Delphi, а значит русскоязычным разработчикам в целом. Код закрыт, но ограничений на использование нет.

DB2, VistaDB, Sybase, Synergy, Teradata

Это все платные базы данных, так и не получившие должного внимания с моей стороны. Понадобится мне они могут разве что для поддержки какой-нибудь «древней» программы.

Запросы

Практика показывает, что в большинстве проектов используются стандартные операции, практически не отличающиеся грамматикой между базами данных. Все реже встречаются приложения с пользовательскими функциями и процедурами. Их использование логично в том случае, если нет никаких идей по поддержке нескольких баз дынных, и если это повышает производительность кода.

NoSQL

Не реляционным базам уже давно пророчат победить реляционные. Но этого не происходит, и вряд ли когда произойдет. Из за специфики хранения данных (хэш-таблицы, деревья и т.д.), не реляционные базы обладают высокой скоростью получения данных и масштабируемостью. Тем не менее, у них отсутствует ряд возможностей построения запросов в отличие от реляционных (например, нет операции JOIN).

комментарии