Каждый кто начинал работу с базами данных сталкивался с дилеммой MySQL или PostgreSQL. Данная небольшая статья не только поможет решить этот извечный вопрос, но и избавит вас от каскада подобных вопросов о специализации какой-либо базы данных.

SQLite

SQLite — это библиотека, встраиваемая в приложение, которое её использует. Будучи файловой БД, она предоставляет отличный набор инструментов для более простой (в сравнении с серверными БД) обработки любых видов данных.

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

Преимущества

· Файловая: вся база данных хранится в одном файле, что облегчает перемещение.

· Стандартизированная: SQLite использует SQL; некоторые функции опущены (RIGHT OUTER JOIN или FOR EACH STATEMENT), но есть и некоторые новые.

· Отлично подходит для разработки и тестирования: во время этапа разработки большинству требуется масштабируемое решение. SQLite, со своим богатым набором функций, может предоставить более чем достаточный функционал, при этом будучи достаточно простой для работы с одним файлом и связанной с Си библиотекой.

Недостатки

· Отсутствие пользовательского управления: продвинутые БД предоставляют пользователям возможность управлять связями в таблицах в соответствии с привилегиями, но у SQLite такой функции нет.

· Невозможность дополнительной настройки: SQLite нельзя сделать более производительной.

Когда стоит использовать SQLite

· Встроенные приложения: все портируемые не предназначенные для масштабирования приложения — например, локальные однопользовательские приложения, мобильные приложения или игры.

· Система доступа к дисковой памяти: в большинстве случаев приложения, часто производящие прямые операции чтения/записи на диск, можно перевести на SQLite для повышения производительности.

· Тестирование: отлично подойдёт для большинства приложений, частью функционала которых является тестирование бизнес-логики.

Когда не стоит использовать SQLite

· Многопользовательские приложения: если вы работаете над приложением, доступом к БД в котором будут одновременно пользоваться несколько человек, лучше выбрать полнофункциональную РСУБД.

· Приложения, записывающие большие объёмы данных: одним из ограничений SQLite являются операции записи. Эта РСУБД допускает единовременное исполнение лишь одной операции записи.

MySQL

MySQL — это самая популярная из всех серверных БД. MySQL не пытается полностью реализовать SQL-стандарты, но предлагает широкий функционал. Приложения «общаются» с базой данных через процесс-демон.

Преимущества

· Простота: MySQL легко устанавливается. Существует много сторонних инструментов, включая визуальные, облегчающих начало работы с БД.

· Множество функций: MySQL поддерживает большую часть функционала SQL.

· Безопасность: в MySQL встроено много функций безопасности.

· Мощность и масштабируемость: MySQL может работать с действительно большими объёмами данных, и неплохо походит для масштабируемых приложений.

· Скорость: пренебрежение некоторыми стандартами позволяет MySQL работать производительнее.

Недостатки

· Известные ограничения: по определению, MySQL не может сделать всё, что угодно, и в ней присутствуют определённые ограничения функциональности.

· Вопросы надёжности: некоторые операции реализованы менее надёжно, чем в других РСУБД.

· Застой в разработке: хотя MySQL и является open-source продуктом, работа над ней сильно заторможена. Тем не менее, существует несколько БД, полностью основанных на MySQL (например, MariaDB). 

Когда стоит использовать MySQL

· Распределённые операции: когда вам нужен функционал бо́льший, чем может предоставить SQLite, стоит использовать MySQL.

· Высокая безопасность: функции безопасности MySQL предоставляют надёжную защиту доступа и использования данных.

· Веб-сайты и приложения: большая часть веб-ресурсов вполне может работать с MySQL, несмотря на ограничения. Этот инструмент весьма гибок и прост в обращении, что только на руку в длительной перспективе.

· Кастомные решения: если вы работаете над очень специфичным продуктом, MySQL подстроится под ваши потребности благодаря широкому спектру настроек и режимов работы.

Когда не стоит использовать MySQL

· SQL-совместимость: поскольку MySQL не пытается полностью реализовать стандарты SQL, она не является полностью совместимой с SQL. Из-за этого могут возникнуть проблемы при интеграции с другими РСУБД.

· Низкая производительность в сложных запросах: MySQL неплохо справляется с операциями чтения, одновременные операции чтения-записи могут вызвать проблемы.

PostgreSQL

PostgreSQL — это самая продвинутая РСУБД, ориентирующаяся в первую очередь на полное соответствие стандартам и расширяемость. 

Postgres, пытается полностью соответствовать SQL-стандартам ANSI/ISO.

PostgreSQL отличается от других РСУБД тем, что обладает объектно-ориентированным функционалом, в том числе полной поддержкой концепта ACID.

Будучи основанным на мощной технологии Postgres отлично справляется с одновременной обработкой нескольких заданий. Поддержка конкурентности реализована с использованием MVCC (Multiversion Concurrency Control), что также обеспечивает совместимость с ACID.

Хотя эта РСУБД не так популярна, как MySQL, существует много сторонних инструментов и библиотек для облегчения работы с PostgreSQL.

Преимущества

· Полная SQL-совместимость.

· Поддержка сторонними организациями: несмотря на очень продвинутые функции, PostgreSQL используется в многих инструментах, связанных с РСУБД.

· Расширяемость: PostgreSQL можно программно расширить за счёт хранимых процедур.

· Объектно-ориентированность: PostgreSQL — не только реляционная, но и объектно-ориентированная СУБД.

Недостатки

· Низкая производительность в простых запросах: В простых операциях чтения PostgreSQL может уступать своим соперникам.

Когда стоит использовать PostgreSQL

· Целостность данных: если приоритет стоит на надёжность и целостность данных, PostgreSQL — лучший выбор.

· Сложные процедуры: если ваша БД должна выполнять сложные процедуры, стоит выбрать PostgreSQL в силу её расширяемости.

· Интеграция: если в будущем вам предстоит перемещать всю базу на другое решение, меньше всего проблем возникнет с PostgreSQL.

Когда не стоит использовать PostgreSQL

· Скорость: если всё, что нужно — это быстрые операции чтения, не стоит использовать PostgreSQL.

· Простые ситуации: если вам не требуется повышенная надёжность, поддержка ACID то использование PostgreSQL — это не оптимальное решение.



Среда, Февраль 17, 2021

« Назад