В чем разница между типов библиотек: MySQL, SQLite, Flat File?
Когда приложение использует SQLite, их связь производится с помощью функциональных и прямых вызовов файлов, содержащих данные (например, баз данных SQLite), а не какого-то интерфейса, что повышает скорость и производительность операций.
Поддерживаемые типы данных
NULL: NULL-значение.
INTEGER: целое со знаком, хранящееся в 1, 2, 3, 4, 6, или 8 байтах.
REAL: число с плавающей запятой, хранящееся в 8-байтовом формате IEEE.
TEXT: текстовая строка с кодировкойUTF-8, UTF-16BE или UTF-16LE.
BLOB: тип данных, хранящийся точно в таком же виде, в каком и был получен.
Note: для получения более подробной информации ознакомьтесь с документацией.
Преимущества
Файловая: вся база данных хранится в одном файле, что облегчает перемещение.
Стандартизированная: SQLite использует SQL; некоторые функции опущены (RIGHT OUTER JOIN или FOR EACH STATEMENT), однако, есть и некоторые новые.
Отлично подходит для разработки и даже тестирования: во время этапа разработки большинству требуется масштабируемое решение. SQLite, со своим богатым набором функций, может предоставить более чем достаточный функционал, при этом будучи достаточно простой для работы с одним файлом и связанной сишной библиотекой.
Недостатки
Отсутствие пользовательского управления: продвинутые БД предоставляют пользователям возможность управлять связями в таблицах в соствии с привилегиями, но у SQLite такой функции нет.
Невозможность дополнительной настройки: опять-таки, SQLite нельзя сделать более производительной, поковырявшись в настройках — так уж она устроена.
MySQL
MySQL — это самая популярная из всех крупных серверных БД. Разобраться в ней очень просто, да и в сети о ней можно найти большое количество информации. Хотя MySQL и не пытается полностью реализовать SQL-стандарты, она предлагает широкий функционал. Приложения общаются с базой данных через процесс-демон.
Поддерживаемые типы данных
TINYINT: очень маленькое целое.
SMALLINT: маленькое целое.
MEDIUMINT: целое среднего размера.
INT или INTEGER: целое нормального размера.
DATE: дата.
DATETIME: комбинация даты и времени.
TIMESTAMP: отметка времени.
TIME: время.
YEAR: год в формате YY или YYYY.
CHAR: строка фиксированного размера, дополняемая справа пробелами до максимальной длины.
ENUM: перечисление.
SET: множества.
Преимущества
Простота: MySQL легко устанавливается. Существует много сторонних инструментов, включая визуальные, облегчающих начало работы с БД.
Много функций: MySQL поддерживает большую часть функционала SQL.
Безопасность: в MySQL встроено много функций безопасности.
Мощность и масштабируемость: MySQL может работать с действительно большими объёмами данных, и неплохо походит для масштабируемых приложений.
Недостатки
Известные ограничения: по определению, MySQL не может сделать всё, что угодно, и в ней присутствуют определённые ограничения функциональности.
Вопросы надёжности: некоторые операции реализованы менее надёжно, чем в других РСУБД.
Застой в разработке: хотя MySQL и является open-source продуктом, работа над ней сильно заторможена. Тем не менее, существует несколько БД, полностью основанных на MySQL (например, MariaDB). Кстати, подробнее о родстве MariaDB и MySQL можно из нашего интервью с создателем обеих РСУБД — Джеймсом Боттомли.
Недостаток функций: в зависимости от выбора движка MySQL может недоставать некоторых функций.
PostgreSQL
PostgreSQL — это самая продвинутая РСУБД, ориентирующаяся в первую очередь на полное соствие стандартам и расширяемость. PostgreSQL, или Postgres, пытается полностью соствовать SQL-стандартам ANSI/ISO.
Будучи основанным на мощной технологии Postgres отлично справляется с одновременной обработкой нескольких заданий. Поддержка конкурентности реализована с использованием MVCC (Multiversion Concurrency Control), что также обеспечивает совместимость с ACID.
Хотя эта РСУБД не так популярна, как MySQL, существует много сторонних инструментов и библиотек для облегчения работы с PostgreSQL.
Поддерживаемые типы данных
bigint: знаковое 8-байтное целое.
bigserial: автоматически инкрементируемое 8-битное целое.
bit [(n)]: битовая строка фиксированной длины.
bit varying [(n)]: битовая строка переменной длины.
boolean: булевская величина.
box: прямоугольник на плоскости.
bytea: бинарные данные.
character varying [(n)]: строка символов фиксированной длины.
character [(n)]: строка символов переменной длины.
lseg: отрезок на плоскости.
macaddr: MAC-адрес.
money: денежная величина.
path: геометрический путь на плоскости.
point: геометрическая точка на плоскости.
polygon: многоугольник на плоскости.
real: число с плавающей запятой одинарной точности.
smallint: знаковое 2-байтное целое.
serial: автоматически инкрементируемое 4-битное целое.
text: строка символов переменной длины.
Преимущества
Полная SQL-совместимость.
Сообщество: PostgreSQL поддерживается опытным сообществом 24/7.
Поддержка сторонними организациями: несмотря на очень продвинутые функции, PostgreSQL используется в многих инструментах, связанных с РСУБД.