Сравнение с PostgreSQL / MySQL
| Категория | FileDB v2.47.0 | PostgreSQL | MySQL InnoDB |
|---|---|---|---|
| Wire-протокол (psql/mysql, драйверы) | ✅ PG v3 + MySQL, без TLS | ✅ | ✅ |
| Экранирование строк по диалектам | ✅ PG ('', обратный слеш — обычный символ) и MySQL (полный набор бэкслеш-эскейпов + ''), единообразно для single- и multi-row INSERT (v2.44) |
✅ | ✅ |
| ACID-семантика | ✅ WAL + undo-based MVCC, fsync-durability (v2.40) | ✅ MVCC | ✅ MVCC |
| Crash recovery | ✅ committed tx переживают | ✅ | ✅ |
| Уровни изоляции | ✅ 4 уровня (v2.38) | ✅ 4 уровня | ✅ 4 уровня |
| Скалярные функции | ✅ 20+ | ✅ десятки | ✅ десятки |
| CASE WHEN | ✅ | ✅ | ✅ |
| 3+ way JOIN | ✅ | ✅ | ✅ |
| LEFT/RIGHT/FULL OUTER | ⚠️ только для 2 таблиц | ✅ | ✅ |
| ALTER TABLE | ✅ | ✅ | ✅ |
| Составные индексы | ✅ | ✅ | ✅ |
| Overflow-страницы | ✅ значения до ~MB | ✅ TOAST | ✅ overflow |
| WAL checkpoint | ✅ авто + ручной | ✅ | ✅ binlog |
| Хэширование паролей с солью | ✅ PBKDF2-100k | ✅ SCRAM | ✅ caching_sha2 |
| S3/Yandex/MinIO бэкап | ✅ SigV4 встроенный | внешний pg_dump | внешний mysqldump |
| Эмбеддинги + векторный поиск | ✅ 4 провайдера | через pgvector | нет |
| Импорт файлов через UI | ✅ веб UI + API | через COPY/внешнее | через LOAD DATA |
| Встроенные дашборды / BI | ✅ датасеты, чарты, No-Code, AI-ассистент, публичные ссылки (v2.14–v2.41) | внешние инструменты (Metabase, Grafana, …) | внешние инструменты |
| Скачивание консистентного снапшота БД из UI | ✅ (v2.42) | внешний pg_dump | внешний mysqldump |
| Витринный демо-режим (read-only) | ✅ (v2.42) | ❌ | ❌ |
| Window functions | ✅ ROW_NUMBER/RANK/NTILE/LAG/LEAD/агрегаты | ✅ | ✅ |
CTE (WITH ...) |
⚠️ нерекурсивный (ограничение «1 JOIN» снято в v2.40.1) | ✅ включая recursive | ✅ включая recursive |
| Foreign keys / CHECK | ✅ применяются (v2.38/v2.39) | ✅ | ✅ |
| Triggers / stored procs | ❌ | ✅ | ✅ |
| Views | ✅ (v2.34, обновляемые с v2.35) | ✅ | ✅ |
| Репликация | ❌ | ✅ streaming | ✅ binlog |
| MVCC | ✅ undo-based (v2.38) | ✅ | ✅ |
| Внешние зависимости | 0 | C-библиотеки | C-библиотеки |
| Размер бинарника | 11.6 MB | ~50 MB | ~200 MB |
FileDB покрывает примерно 95% типичного OLTP API. Отсутствует — это расширения функциональности (репликация, триггеры, хранимые процедуры), а не критичные для большинства встраиваемых сценариев дыры.
Производительность
Замерено на commodity x86_64, NVMe SSD:
| Операция | Throughput | Latency |
|---|---|---|
| Engine INSERT | 764 rows/s | 1.3 ms |
| Engine SELECT (full scan) | 430k rows/s | — |
| Engine PK lookup | — | 11 μs |
HTTP INSERT через /api/query |
160 rows/s | 6.2 ms |
| HTTP COUNT(*) | — | 5.8 ms |
Узкое место INSERT — на 55% это fsync(), корректный ACID-компромисс. HTTP-оверхед — около 5 мс (JSON encode/decode + парсинг). При конкурентной записи (1000 INSERT × 10 горутин, 200 UPDATE × 10 горутин) — 0 потерь и 0 ошибок, race detector чист.
Далее →
AI-функции: обзор