Базы данных по сравнению
SQLite: наиболее часто используемая база данных, которую игнорирует большинство администраторов
SQLite — это встроенная база данных в каждый браузер, телефон и панель самолета на Земле, и утверждение о том, что это игрушка, является самым надежным признаком того, что кто-то не проверил ее пределы. Бессерверный, файловый, транзакционный и абсурдно стабильный во всех версиях: он занимает удивительную долю работы в небольших системах, а дисциплина в отношении файлов и блокировок — единственная честная кривая обучения.
Главное
- Бессерверная технология — это особенность, а не отсутствие: вызов библиотеки, никаких демонов, никаких сетевых сокетов, никакой настройки; для однопроцессной аналитики и небольших приложений поверхность развертывания приближается к нулю.
- Параллелизм — это ограничение, которое его ограничивает: режим WAL добавляет одновременные чтения с одним записывающим устройством; Наличие N-потоков записи в нескольких независимых процессах сразу бросается в глаза: файл базы данных не предназначен для мультихостинга.
- Честность хранилища: файл ЯВЛЯЕТСЯ базой данных, что делает резервное копирование простым (живые копии через .backup API или VACUUM INTO, а не cp во время записи!) и небрежным размещением катастрофическим (блокировка файлов класса NFS - это фольклор; локальный диск или четкое понимание того факта, что семантика блокировки при сбое NFS является обязательной).
- Стабильность формата файла — редкое достижение: файлы, написанные десятилетия назад, продолжают открываться еще десятилетия; Рабочие процессы судебно-медицинских исследований, хранилища конфигураций и кэши приложений — все это выигрывает от формата, который никогда не прерывает цикл обновления.
- Его нельзя считать небольшим: SQLite поддерживает авионику летной системы и кэши в масштабе браузера; практические потолки обычно определяются нагрузкой на параллельную запись или требованиями к высокой доступности, а не общим размером данных (существуют операции терабайтного класса за пределами кэша).
- Где проходит граница: аналитика с одним автором, локальное хранилище приложений, периферийные устройства, этап MVP от прототипа до производства; В тот момент, когда на сцену выходят несколько серверов или одновременные записи в реальном времени, честно переходите на PostgreSQL или MySQL, а не навязывайте формат.
Заметка из практики
Файл SQLite, который содержал парк устройств в течение семи лет, никогда не был узким местом, но каждый сбой резервного копирования, который мы видели, происходил из-за cp во время записи, а не из-за дисциплины VACUUM INTO для безопасности локальных файлов. Правильные резервные копии зависят от инструмента, а не от привычки дистрибутива.
Частые вопросы
Может ли SQLite запустить мой небольшой веб-сайт?
Да, правильно спроектированные одноблочные приложения с большим объемом чтения работают нормально; режим отказа — это нагрузка с несколькими записывающими устройствами или необходимость высокой доступности, а не трафик сам по себе.
Безопасно ли это для хранилища NFS?
Часто нет: семантика блокировки файлов в NFS является документально подтвержденным локальным фольклорным источником повреждения. Храните базы данных в локальных файловых системах.
Как правильно выполнить резервное копирование?
API/класс .backup или VACUUM INTO в стабильный файл; внешние инструменты копируют во время записи, если соблюдается дисциплина блокировки. Никогда не предполагайте, что cp является атомарным во время записи.
Существует ли реальный потолок производительности?
Чтение чрезвычайно хорошо масштабируется (WAL обеспечивает одновременное чтение), запись сериализуется с помощью одного писателя; крупные развертывания выдерживают использование WAL плюс шаблоны секционирования или шаблоны внешнего масштабирования WAL).
Как мы берём на себя базы данных по сравнению
Договорились: Выбор ядра базы данных для размещения рабочих нагрузок по сравнению с гарантиями корректности, эксплуатационной значимостью и реальной стоимостью: встроенные механизмы против серверов, MySQL против PostgreSQL, SQL против хранилищ документов, а также устаревший практический пример, который постоянно возвращается. Передайте это нашей услуге Администрирование серверов и Оптимизация скорости сайтов — вопрос будет закрыт, оценён по делу, внедрён без лишних движений и под наблюдением круглосуточно.