Легкая база данных: Рассуждение на тему, какую базу данных выбирать / Хабр

Содержание

7 типов современных баз данных: предназначение, достоинства и недостатки

Артём Гогин

руководитель направления в хранилище данных в Сбербанке

Существуют сотни баз данных SQL и NoSQL. Одни популярны, другие игнорируются. Некоторые просты и хорошо документированы, а некоторые сложны в использовании. Одни имеют открытый код, а другие проприетарные. Что, возможно, наиболее важно, некоторые масштабируемы, оптимизированы, высокодоступны, а некоторые сложно масштабировать или поддерживать.

Возникает естественный вопрос: какую базу данных выбрать? Чтобы ответить на него, мы должны решить, чего мы хотим достичь с помощью базы данных. Чтобы составить представление, необходимо ответить на следующие вопросы:

  1. Нужен ли нам аналитический доступ к базе данных?
  2. Нужно ли нам писать или читать в реальном времени?
  3. Сколько таблиц / записей мы хотим сохранить?
  4. Какая доступность нам нужна?
  5. Нужны ли нам столбцы?
  6. Сможем ли мы получить доступ к таблицам, отфильтрованным по столбцам или по строкам?

Принимая решение, нужно помнить, что может предложить та или иная база данных. Специфика каждой БД может отличаться, но в целом существует только несколько типов, в рамках которых мы можем достичь в основном одинаковых целей. Рассмотрим их подробнее.

Реляционные базы данных SQL

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

Достоинства:

  • Поддержка SQL
  • ACID-транзакции (атомарность, согласованность, изоляция и долговечность)
  • Поддержка индексации и разделения

Недостатки:

  • Плохая поддержка неструктурированных данных / сложных типов
  • Плохая оптимизация обработки событий
  • Сложное / дорогое масштабирование

Примеры: Oracle DB, MySQL, PostgreSQL.

Документно-ориентированные базы данных

Если мы не хотим объединять несколько таблиц для получения нужных данных, мы можем взглянуть на документно-ориентированные базы данных. Они позволяют хранить записи в формате JSON. В этом формате мы можем создать сложное значение для любого ключа и сразу включить всю структуру данных в одну запись.

Достоинства:

  • Нет привязки к схеме
  • Нет необходимости всегда писать все поля в каждой записи
  • Хорошая поддержка сложных типов
  • Подходит для OLTP

Недостатки:

  • Плохая поддержка транзакций
  • Слабая аналитическая поддержка
  • Сложное / дорогое масштабирование

Примеры: MongoDB.

Базы данных в оперативной памяти

Базы данных этого типа могут предоставлять в реальном времени ответ для выбора и вставки определенных записей. Большинство из них в основном хранят данные в ОЗУ, но в некоторых случаях они также предлагают постоянное хранилище на жестких дисках или твердотельных накопителях. Большинство этих баз данных работают с записями «ключ-значение», поэтому значения можно запоминать в формате, ориентированном на документы. Но некоторые базы данных также работают со столбцами и позволяют вторичное индексирование той же таблицы. Использование ОЗУ позволяет обрабатывать данные быстро, но делает их более нестабильными и дорогостоящими.

Достоинства:

  • Быстрое написание
  • Быстрое чтение

Недостатки:

  • Труднодостижимая надёжность
  • Дорогое масштабирование

Примеры: Redis, Tarantool, Apache Ignite.

Базы данных с широкими столбцами

Эти базы данных хранят данные в виде записей ключ / значение на жестком диске или твердотельном накопителе. Эти решения предназначены для достаточно хорошего масштабирования, чтобы управлять петабайтами данных на тысячах общих серверов в распределенной системе. Они представляют архитектуру SSTable. Эта архитектура была разработана для двух случаев использования: быстрый доступ к ключу и быстрая запись с высокой доступностью.

Достоинства:

  • Быстрая запись построчно
  • Быстрое чтение по ключу
  • Хорошая масштабируемость
  • Высокая доступность

Недостатки:

  • Формат «ключ-значение»
  • Нет поддержки аналитики

Примеры: Cassandra, HBase.

Столбчатые базы данных

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

Достоинства:

  • Быстрое чтение столбец за столбцом
  • Хорошая аналитическая поддержка
  • Хорошая масштабируемость

Недостатки:

  • Подходит только для пакетных вставок

Примеры: Vertica, Clickhouse.

Поисковая система

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

Достоинства:

  • Быстрый доступ по любому слову
  • Хорошая масштабируемость

Недостатки:

  • Подходит только для пакетных вставок
  • Плохая аналитическая поддержка

Примеры: Elastic.

Графовые базы данных

Для некоторых случаев подходят графовые структуры данных. Если ваши задачи требуют работы с графами, существуют специальные базы данных, которые удовлетворят ваши потребности.

Достоинства:

  • Структура данных графа
  • Управляемые отношения между сущностями
  • Гибкие конструкции

Недостатки:

  • Специальный язык запросов
  • Трудно масштабировать

Примеры: Neo4j.

Выводы

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


Если вы готовитесь к собеседованию, посмотрите также статью, в которой собраны 27 распространённых вопросов по SQL и ответы на них.

Реклама на Tproger: найдем для вас разработчиков нужного стека и уровня.

Подробнее

Реклама на tproger.ru

Загрузка

SQLite, MySQL и PostgreSQL: сравниваем популярные реляционные СУБД

Реляционные базы данных используются уже очень давно. Они стали популярными благодаря успешным реализациям реляционных моделей в системах управления, оказавшимся весьма удобными для работы с данными. В этой статье мы сравним три самые популярные реляционные системы управления базами данных (РСУБД): SQLite, MySQL и PostgreSQL.  

Системы управления базами данных

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

Чтобы лучше разобраться в СУБД, ознакомьтесь с этой статьёй.

Реляционные системы управления базами данных

Реляционные системы реализуют реляционную модель работы с данными, которая определяет всю хранимую информацию как набор связанных записей и атрибутов в таблице.

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

Отношения и типы данных

Отношения можно определить как математические множества, содержащие наборы атрибутов, отображающие хранящуюся информацию.

Каждый элемент, формирующий запись, должен удовлетворять определённому типу данных (целое число, дата и т.д.). Различные РСУБД используют разные типы данные, которые не всегда взаимозаменяемы.

Такого рода ограничения обычны для реляционных баз данных. Фактически, они и формируют суть отношений.

Популярные РСУБД

В этой статье мы расскажем о 3 наиболее популярных РСУБД:

  • SQLite: очень мощная встраиваемая РСУБД.
  • MySQL: самая популярная и часто используемая РСУБД.
  • PostgreSQL: самая продвинутая и гибкая РСУБД.

SQLite

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

Когда приложение использует 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 нельзя сделать более производительной, поковырявшись в настройках — так уж она устроена.
Когда стоит использовать SQLite
  • Встроенные приложения: все портируемые не предназначенные для масштабирования приложения — например, локальные однопользовательские приложения, мобильные приложения или игры.
  • Система доступа к дисковой памяти: в большинстве случаев приложения, часто производящие прямые операции чтения/записи на диск, можно перевести на SQLite для повышения производительности.
  • Тестирование: отлично подойдёт для большинства приложений, частью функционала которых является тестирование бизнес-логики.
Когда не стоит использовать SQLite
  • Многопользовательские приложения: если вы работаете над приложением, доступом к БД в котором будут одновременно пользоваться несколько человек, лучше выбрать полнофункциональную РСУБД — например, MySQL.
  • Приложения, записывающие большие объёмы данных: одним из ограничений SQLite являются операции записи. Эта РСУБД допускает единовременное исполнение лишь одной операции записи.

MySQL

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

Поддерживаемые типы данных
  • TINYINT: очень маленькое целое.
  • SMALLINT: маленькое целое.
  • MEDIUMINT: целое среднего размера.
  • INT или INTEGER: целое нормального размера.
  • BIGINT: большое целое.
  • FLOAT: знаковое число с плавающей запятой одинарной точности.
  • DOUBLE, DOUBLE PRECISION, REAL: знаковое число с плавающей запятой двойной точности.
  • DECIMAL, NUMERIC: знаковое число с плавающей запятой.
  • DATE: дата.
  • DATETIME: комбинация даты и времени.
  • TIMESTAMP: отметка времени.
  • TIME: время.
  • YEAR: год в формате YY или YYYY.
  • CHAR: строка фиксированного размера, дополняемая справа пробелами до максимальной длины.
  • VARCHAR: строка переменной длины. 32 — 1) символов.
  • ENUM: перечисление.
  • SET: множества.
Преимущества
  • Простота: MySQL легко устанавливается. Существует много сторонних инструментов, включая визуальные, облегчающих начало работы с БД.
  • Много функций: MySQL поддерживает большую часть функционала SQL.
  • Безопасность: в MySQL встроено много функций безопасности.
  • Мощность и масштабируемость: MySQL может работать с действительно большими объёмами данных, и неплохо походит для масштабируемых приложений.
  • Скорость: пренебрежение некоторыми стандартами позволяет MySQL работать производительнее, местами срезая на поворотах.
Недостатки
  • Известные ограничения: по определению, MySQL не может сделать всё, что угодно, и в ней присутствуют определённые ограничения функциональности.
  • Вопросы надёжности: некоторые операции реализованы менее надёжно, чем в других РСУБД.
  • Застой в разработке: хотя MySQL и является open-source продуктом, работа над ней сильно заторможена. Тем не менее, существует несколько БД, полностью основанных на MySQL (например, MariaDB). Кстати, подробнее о родстве MariaDB и MySQL можно из нашего интервью с создателем обеих РСУБД — Джеймсом Боттомли.
Когда стоит использовать MySQL
  • Распределённые операции: когда вам нужен функционал бо́льший, чем может предоставить SQLite, стоит использовать MySQL.
  • Высокая безопасность: функции безопасности MySQL предоставляют надёжную защиту доступа и использования данных.
  • Веб-сайты и приложения: большая часть веб-ресурсов вполне может работать с MySQL, несмотря на ограничения. Этот инструмент весьма гибок и прост в обращении, что только на руку в длительной перспективе.
  • Кастомные решения: если вы работаете над очень специфичным продуктом, MySQL подстроится под ваши потребности благодаря широкому спектру настроек и режимов работы.
Когда не стоит использовать MySQL
  • SQL-совместимость: поскольку MySQL не пытается полностью реализовать стандарты SQL, она не является полностью совместимой с SQL. Из-за этого могут возникнуть проблемы при интеграции с другими РСУБД.
  • Конкурентность: хотя MySQL неплохо справляется с операциями чтения, одновременные операции чтения-записи могут вызвать проблемы.
  • Недостаток функций: в зависимости от выбора движка MySQL может недоставать некоторых функций.

PostgreSQL

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

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

Будучи основанным на мощной технологии 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)]: строка символов переменной длины.
  • cidr: сетевой адрес IPv4 или IPv6.
  • circle: круг на плоскости.
  • date: календарная дата.
  • double precision: число с плавающей запятой двойной точности.
  • inet: адрес хоста IPv4 или IPv6.
  • integer: знаковое 4-байтное целое.
  • interval [fields] [(p)]: временной промежуток.
  • line: бесконечная прямая на плоскости.
  • lseg: отрезок на плоскости.
  • macaddr: MAC-адрес.
  • money: денежная величина.
  • path: геометрический путь на плоскости.
  • point: геометрическая точка на плоскости.
  • polygon: многоугольник на плоскости.
  • real: число с плавающей запятой одинарной точности.
  • smallint: знаковое 2-байтное целое.
  • serial: автоматически инкрементируемое 4-битное целое.
  • text: строка символов переменной длины.
  • time [(p)] [without time zone]: время суток (без часового пояса).
  • time [(p)] with time zone: время суток (с часовым поясом).
  • timestamp [(p)] [without time zone]: дата и время (без часового пояса).
  • timestamp [(p)] with time zone: дата и время (с часовым поясом).
  • tsquery: запрос текстового поиска.
  • tsvector: документ текстового поиска.
  • txid_snapshot: снэпшот ID пользовательской транзакции.
  • uuid: уникальный идентификатор.
  • xml: XML-данные.
Преимущества
  • Полная SQL-совместимость.
  • Сообщество: PostgreSQL поддерживается опытным сообществом 24/7.
  • Поддержка сторонними организациями: несмотря на очень продвинутые функции, PostgreSQL используется в многих инструментах, связанных с РСУБД.
  • Расширяемость: PostgreSQL можно программно расширить за счёт хранимых процедур.
  • Объектно-ориентированность: PostgreSQL — не только реляционная, но и объектно-ориентированная СУБД.
Недостатки
  • Производительность: В простых операциях чтения PostgreSQL может уступать своим соперникам.
  • Популярность: из-за своей сложности инструмент не очень популярен.
  • Хостинг: из-за вышеперечисленных факторов проблематично найти подходящего провайдера.
Когда стоит использовать PostgreSQL
  • Целостность данных: если приоритет стоит на надёжность и целостность данных, PostgreSQL — лучший выбор.
  • Сложные процедуры: если ваша БД должна выполнять сложные процедуры, стоит выбрать PostgreSQL в силу её расширяемости.
  • Интеграция: если в будущем вам предстоит перемещать всю базу на другое решение, меньше всего проблем возникнет с PostgreSQL.
Когда не стоит использовать PostgreSQL
  • Скорость: если всё, что нужно — это быстрые операции чтения, не стоит использовать PostgreSQL.
  • Простые ситуации: если вам не требуется повышенная надёжность, поддержка ACID и всё такое, использование PostgreSQL — это стрельба из пушки по мухам.

Перевод статьи «SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems»

Реклама на Tproger: найдем для вас разработчиков нужного стека и уровня.

Подробнее

Реклама на tproger.ru

Загрузка

Страница загрузки

SQLite Страница загрузки

SQLite

Маленький. Быстро. Надежный.
Выберите любые три.

  • Дом
  • Меню
  • О компании
  • Документация
  • Скачать
  • Лицензия
  • Поддержка
  • Покупка
.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Исходный код
sqlite-amalgamation-3400000.zip
(2,48 МБ)
Исходный код

C как объединение, версия 3.40.0.
(sha3: 362a64ad2891c6ff7552f039f3f233d49da984446be0862183eb5cef0d665969)
sqlite-autoconf-3400000. tar.gz
(2,95 МБ)
Исходный код

C как объединение. Также включает в себя сценарий «настройки».
и make-файлы TEA для интерфейса TCL.
(sha3: 7ee8f02b21edb4489df5082b5cf5b7ef47bcebcdb0e209bf14240db69633c878)
Documentation
sqlite-doc-3400000.zip
(10,42 МБ)
Документация в виде пакета статических файлов HTML.
(sha3: cb44cd9838728dbb9386e5d5b40d7bb5d4eb83a3c6f40961d5d1b2614881eb6b)
Precompiled Binaries for Android
sqlite-android-3400000.aar
(3.24 MiB)
Предварительно скомпилированная библиотека Android, содержащая ядро ​​SQLite вместе
с соответствующими привязками Java, готовыми к установке на любой Android
Студийный проект.
(sha3: e90a922f285887d2a408e8b0df02a78560593abd720ded5f3780714eaa87407c)
Precompiled Binaries for Linux
sqlite-tools-linux-x86-3400000.zip
(2.15 MiB)
Набор инструментов командной строки для управления файлами базы данных SQLite,
включая программу оболочки командной строки, программу sqldiff и
программа sqlite3_analyzer.
(sha3: 5777b71f6692ff0eaf586238f416a886b3b713d575bac237646ac150394471e4)
Предварительно скомпилированные двоичные файлы для Mac OS X (x86)
Набор инструментов командной строки для управления файлами базы данных SQLite,
включая программу оболочки командной строки, программу sqldiff и
программа sqlite3_analyzer.
(sha3: 7c8d354f08e3d700a44af607352936bffc48f855a9f55d8aaa0d93d087208f41)
Предварительно скомпилированные двоичные файлы для Windows
sqlite-dll-win32-x86-3400000. zip
(559,71 КиБ)
32-разрядная DLL (x86) для SQLite версии 3.40.0.
(SHA3: 261DF51A967A86ADB937A205520EDC55F5A1D5A3ED32E20F21177D748DA12E)
SQLITE-DLL-WIN64-xIP64-340024.10034.9003.

.

64-разрядная DLL (x64) для SQLite версии 3.40.0.
(sha3: f931db5ba9aa65a98493d2ca820d2a8f3640fbda1696d014ef72724663c95485)
sqlite-tools-win32-x86-3400000.zip
(1,90 МБ)
Набор инструментов командной строки для управления файлами базы данных SQLite,
включая программу оболочки командной строки, программу sqldiff.exe и
программа sqlite3_analyzer.exe.
(SHA3: 31DAA814B4A761F62056F6D58DD6E5A979F41CEE457768BF486F5007A25229D7)
7. SIGLED BINARSE для BINARSE для BINARSE для BINARSE.0031

Посетите System.Data.SQLite.org
веб-сайт и особенно страницу загрузки для
исходный код и двоичные файлы SQLite для .NET.
WebAssembly и JavaScript
sqlite-wasm-3400000.zip
(424,81 КиБ)
Предварительно скомпилированный пакет из sqlite3.wasm и его
API-интерфейсы JavaScript, готовые к использованию в веб-приложениях.
(sha3: 29fd948ff54ede954209913cff94f32520ebe395d5c68bc4d33f66767658add6)
Альтернативные форматы исходного кода
sqlite-src-3400000.zip
(13,09 МБ)
Моментальный снимок полного (необработанного) исходного дерева для SQLite версии 3.40.0.
Подробнее об использовании см. Как скомпилировать SQLite.
(SHA3: 7B5869A3372562F79141F0305E21CD11216C7D39B1D26B66A3E82DBA59146447)
SQLITE-PRPROCPROCPORCPROCPROCPPROCPROCPROCPROCPROCPROCPROCPROCPROCPROCPROCLIC

Предварительно обработанные исходные коды C для SQLite версии 3.40.0.
(sha3: 35611df9c6c57b7f8936c0b8b68715fbfadccf12d3e4c519ed3a0bc7df16d446)

Названия и информация о продуктах сборки

Продукты сборки именуются с использованием одного из следующих шаблонов:

  1. sqlite- продукт версия .zip
  2. sqlite- продукт версия .tar.gz
  3. sqlite- продукт ОС процессор версия .zip
  4. sqlite- продукт дата .zip

Шаблоны (1) и (2) используются для продуктов с исходным кодом. Шаблон (1) есть
используется для общих продуктов и шаблонов с исходным кодом (2) используется для исходного кода
продукты, которые обычно полезны только на unix-подобных платформах. Шаблон (3)
используется для предварительно скомпилированных двоичных файлов. Шаблон (4) используется для
неофициальные предварительные «снимки» исходного кода.

Версия закодирован таким образом, что имена файлов сортируются в порядке
увеличение номера версии при просмотре с помощью «ls». Для версии 3.X.Y
кодировка имени файла 3XXYY00. Для ветки версии 3.X.Y.Z кодировка
3XXYZZ.

Дата в шаблоне (4) имеет вид: ГГГГММДДЧЧММ.

Для удобного извлечения загружаемых
URL-адреса файлов и связанная с ними информация, встроенный HTML-комментарий
в источнике этой страницы. Его первая строка (без начального тега) гласит:

Загрузка данных о продукте для чтения сценариев

Его последующие строки составляют таблицу CSV с таким заголовком столбца:

ПРОДУКТ, ВЕРСИЯ, ОТНОСИТЕЛЬНЫЙ URL, РАЗМЕР В БАЙТАХ, SHA3-HASH

Заголовок столбца и последующие строки данных не имеют начального пробела.
Столбец ПРОДУКТ представляет собой постоянное значение («ПРОДУКТ») для удобного
сопоставление регулярных выражений. Другие столбцы говорят сами за себя.
Этот формат останется стабильным, за исключением возможных новых столбцов.
добавляются справа от старых столбцов.

Репозитории исходного кода

Исходный код SQLite поддерживается в трех географически разнесенных
самосинхронизирующийся
Хранилища ископаемых, которые
доступны для анонимного доступа только для чтения. Любой может
просматривать содержимое репозитория и скачивать исторические версии
отдельных файлов или ZIP-архивов исторических проверок.
Вы также можете клонировать весь репозиторий.

Дополнительные сведения см. на странице Как скомпилировать SQLite.
о том, как использовать необработанный исходный код SQLite.
Обратите внимание, что последняя версия Tcl
требуется для сборки из источников репозитория.
Объединение файлов исходного кода
(файлы sqlite3.c и sqlite3.h) создают продукты и
не содержится в необработанном дереве исходного кода.

https://www.sqlite.org/cgi/src (Даллас)
https://www2.sqlite. org/cgi/src (Ньюарк)
https://www3.sqlite.org/cgi/src (Сан-Франциско) )

Зеркало GitHub находится по адресу

https://github.com/sqlite/sqlite/

Документация хранится в отдельном
Хранилища ископаемых расположены
по адресу:

https://www.sqlite.org/cgi/docsrc (Даллас)
https://www2.sqlite.org/cgi/docsrc (Ньюарк)
https://www3.sqlite.org/cgi/docsrc (Сан-Франциско) )

О SQLite

О SQLite

Маленький. Быстро. Надежный.
Выберите любые три.

  • Дом
  • Меню
  • О компании
  • Документация
  • Скачать
  • Лицензия
  • Поддержка
  • Покупка

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

SQLite — это встроенный механизм базы данных SQL.
В отличие от большинства других баз данных SQL, SQLite не имеет отдельного
серверный процесс. SQLite читает и записывает прямо на обычный диск
файлы. Полная база данных SQL с несколькими таблицами, индексами,
триггеры и представления содержатся в одном файле на диске.
Формат файла базы данных является кроссплатформенным — вы можете свободно копировать базу данных.
между 32-битной и 64-битной системами или между
с обратным порядком байтов и
прямой порядок байтов
архитектуры. Эти функции делают SQLite популярным выбором, поскольку
Формат файла приложения. Файлы базы данных SQLite представляют собой
рекомендуемый формат хранения Библиотекой Конгресса США.
Думайте о SQLite не как о замене
Оракул, но
как замена fopen()

SQLite — это компактная библиотека.
При включении всех функций размер библиотеки может быть менее 750 КБ,
в зависимости от целевой платформы и настроек оптимизации компилятора.
(64-битный код больше. И некоторые оптимизации компилятора
такие как агрессивное встраивание функций и развертывание циклов, могут привести к
объектный код должен быть намного больше.)
Существует компромисс между использованием памяти и скоростью.
SQLite обычно работает быстрее, чем больше памяти
вы даете это. Тем не менее, производительность обычно неплохая даже
в средах с малым объемом памяти. В зависимости от того, как он используется, SQLite может быть
быстрее, чем прямой ввод-вывод файловой системы.

SQLite есть
очень тщательно проверяется перед каждым
выпуска и имеет репутацию очень надежного.
Большая часть исходного кода SQLite посвящена исключительно тестированию и
проверка. Набор автоматизированных тестов выполняет миллионы и миллионы
тестовые примеры, включающие сотни миллионов отдельных операторов SQL
и достигает 100%-го охвата отраслевых тестов.
SQLite изящно реагирует на память
сбои распределения и ошибки дискового ввода-вывода. Транзакции
КИСЛОТА
даже в случае прерывания из-за системных сбоев или сбоев питания.
Все это проверяется
автоматизированные тесты с использованием специальных тестовых наборов, которые имитируют
системные сбои.
Конечно, даже при всем этом тестировании все еще есть ошибки.
Но в отличие от некоторых подобных проектов (особенно коммерческих конкурентов)
SQLite открыто и честно говорит обо всех ошибках и предоставляет
списки ошибок и
минута за минутой
хронологии изменений кода.

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

Проект SQLite запущен
09.05.2000.
Будущее всегда сложно предсказать, но замысел разработчиков
заключается в поддержке SQLite до 2050 года. Решения по проектированию принимаются
имея в виду эту цель.

This entry was posted in Популярное