Ответ
В Go для локального хранения данных, не требующего отдельного сервера, популярны следующие встраиваемые (embedded) базы данных:
-
SQLite
- Тип: Реляционная СУБД.
- Описание: Полнофункциональная SQL-база данных, которая хранится в одном файле. Идеальна, когда нужны транзакции, сложные запросы и реляционная структура. Для работы требуется CGO и драйвер, например
github.com/mattn/go-sqlite3. -
Пример:
import "database/sql" import _ "github.com/mattn/go-sqlite3" db, err := sql.Open("sqlite3", "./database.db")
-
BadgerDB
- Тип: Key-value хранилище.
- Описание: Высокопроизводительная key-value база данных, написанная на чистом Go. Оптимизирована для SSD. Хранит данные в директории с файлами. Отличный выбор для кэширования или хранения неструктурированных данных.
-
bbolt (ранее BoltDB)
- Тип: Key-value хранилище.
- Описание: Транзакционная key-value база данных, хранящая все в одном файле. Проект BoltDB был заархивирован, но его активным форком является
bbolt. Он прост в использовании и надежен.
-
BuntDB
- Тип: Key-value хранилище.
- Описание: Быстрая встраиваемая in-memory key-value база данных с поддержкой персистентности (сохранения на диск). Поддерживает геопространственные данные.
Выбор зависит от задачи:
- Используйте SQLite, если вам нужны реляционные данные и мощь SQL.
- Используйте BadgerDB или bbolt, если вам нужно простое и быстрое хранилище пар "ключ-значение". BadgerDB обычно производительнее, в то время как bbolt проще из-за хранения всего в одном файле.