概述
SleekDB 是一个简单的 PHP 实现的扁平文件 NoSQL 数据库,没有任何第三方依赖。它将数据存储在纯 JSON 文件中,使其轻量级且易于使用。
与 SQLite、MySQL、PostgreSQL 等关系型数据库不同,SleekDB 是一个 NoSQL 数据库;你可以把它想象成 MongoDB,但更简单且没有额外的负担。
它专为管理几 GB 的数据而设计,适用于低到中等操作负载。如果你需要一个简单的数据库解决方案,且不需要高负载的 IO 操作,SleekDB 就是为你而生的。
支持 PHP 8.4 及以上版本,仅需 ext-json 和 ext-mbstring 两个扩展即可运行。
安装
使用 composer 安装
composer require sleekdb/sleekdb
SleekDB 应该会通过 composer 自动加载到您的应用中。一行命令搞定,零配置启动。
核心亮点
轻松便捷的数据管理 整个库非常小巧,核心代码精简。数据直接以纯 JSON 格式存储,便于阅读、备份和迁移——直接复制整个数据库文件夹就能完成备份。
- 支持嵌套属性查询(如
user.address.city) - 条件查询:
where、orWhere、LIKE、IN、BETWEEN、EXISTS 等 - 全文搜索,带相关性评分(searchScore),可指定搜索字段和排序算法
- 分页(
limit / skip)、排序、去重(distinct)、分组(groupBy)和聚合操作 - Join 支持,通过闭包灵活关联多个 Store(类似于表)
- 内置查询缓存,大幅提升重复查询的性能,让动态页面表现得像静态站点一样快
更好的并发处理 与传统单文件平面数据库不同,SleekDB 使用多个 JSON 文件 + 文件锁机制来提升并发能力。虽然仍不适合高并发重写场景,但对于低到中流量网站已足够实用。
开发者友好 API 设计简洁直观,文档详尽且附带大量示例。无论是 CRUD 操作、复杂查询还是自定义选择函数,都能快速上手。
实际使用场景举例
假设你要开发一个个人博客系统,使用 SleekDB 来存储文章数据:
useSleekDB\Store;// 创建文章存储$articles = new Store("articles", __DIR__ . "/database");// 插入一篇文章$articles->insert(["title" => "SleekDB 入门指南","content" => "这是一篇关于轻量级 PHP 数据库的文章...","author" => ["name" => "Tinywan", "email" => "example@email.com"],"tags" => ["php", "nosql"],"created_at" => date("Y-m-d H:i:s")]);// 全文搜索并按相关性排序$results = $articles->search(["title", "content"], "PHP 数据库", ["searchScore" => "DESC"]);// 分页查询最新文章$latest = $articles->createQueryBuilder() ->orderBy(["created_at" => "DESC"]) ->limit(10) ->skip(0) ->fetch();
整个过程无需连接数据库服务器,代码干净且易维护。
官方:https://sleekdb.github.io