03
03月
2026
YKDB - 高性能文本数据库
版本: v3.2 (2026-02-12)
状态: 生产就绪 (Production Ready)
下载:下载链接
简介
YKDB 是一个纯 PHP 实现的超轻量级、高性能文本数据库系统,无需 MySQL 等重型数据库依赖。数据以纯文本文件形式存储,支持定长字段和不定长字段混合存储,拥有极高的读写性能和并发处理能力。
YKDB 无需复杂配置,无需安装任何扩展,只要你的环境能跑 PHP,就能立即使用 YKDB。特别适合中小型网站、API 缓存、日志系统、临时数据存储等场景。
核心特性
• 🚀 极速读写: 采用独创的文件指针定位技术,百万级数据秒级读取。
• 📦 零依赖: 纯 PHP 代码,无需 PDO/MySQLi,无需数据库服务器。
• ⚡ 高并发: 内置文件锁机制 + 写入队列,支持多进程安全并发写入。
• 🔍 灵活搜索: 支持精确搜索、模糊搜索、批量搜索及字段排序。
• 💾 混合存储:
• 定长字段: 像 MySQL 的 char 类型,存取速度极快。
• 不定长字段: 像 MySQL 的 text 类型,存储大文本内容。
快速上手
1. 配置文件 (data.php)
在使用之前,需要先定义数据库结构。创建一个 data.php 文件:
<?php exit;?>;name,100;age,10;status,5 <-- 第一行:定长字段定义 (字段名,长度);bio;address <-- 第二行:不定长字段定义 (字段名)100M <-- 第三行:单文件大小限制
2. 初始化数据库
在 PHP 代码中引入并初始化:
require 'ykdb.php';$db = new 数据();$db->路径 = './data/'; // 数据存储目录(请确保可写权限)$db->名称 = 'user_data'; // 数据库文件名$db->配置 = $db->配置('data.php'); // 加载字段定义3. 写入数据
$new_user = [ 'name' => '张三', 'age' => 25, 'status' => 1, 'bio' => '这是一段很长的自我介绍...', 'address'=> '北京市朝阳区'];// 写入新记录,返回自增 ID$id = $db->写入($new_user);if ($id) { echo "写入成功,用户 ID: $id";} else { echo "写入失败";}4. 读取数据
// 读取 ID 为 100 的记录(返回所有字段)$user = $db->读取(100);print_r($user);// 读取 ID 为 100 的记录,仅返回 name 和 age 字段(性能更优)$user_part = $db->读取(100, 'name|age');echo "用户名: " . $user_part['name'];
5. 更新数据
更新数据其实就是写入数据时带上 ID。
$update_data = [ 'age' => 26, // 只更新 age 字段 'bio' => '更新后的介绍' // 更新 bio 字段];// 更新 ID 为 100 的记录$db->写入($update_data, 100);
6. 删除数据
// 删除 ID 为 100 的记录$db->删除(100);// 删除并指定同时清理哪些字段(可选,通常用于彻底清除关联数据)$db->删除(100, 'bio|address');
7. 搜索数据
// 1. 精确搜索:查找 name 为 "张三" 的记录 ID$ids = $db->搜索('name=>张三');// 2. 模糊搜索(默认模式):查找 name 包含 "张" 的记录// 注意:搜索仅支持定长字段$ids = $db->搜索('name=>张');// 3. 多条件搜索(AND 关系):查找 name 包含 "张" 且 age 为 25 的记录$ids = $db->搜索('name=>张|age=>25');if ($ids) { echo "找到匹配记录 ID: " . implode(',', $ids);}8. 批量搜索 (OR 关系)
// 查找 status 为 1 或 2 或 3 的记录$ids = $db->批量搜索('status=>1||2||3');9. 排序与分页
// 按 age 字段升序排序,返回排序后的 ID 数组$sorted_ids_asc = $db->排序('age', '升');// 按 age 字段降序排序$sorted_ids_desc = $db->排序('age', '降');// 数组分页工具:将 ID 数组分页显示// 参数:数组, 页码, 每页数量$page_data = $db->数组分页($sorted_ids_desc, 1, 20);print_r($page_data);注意事项
1. 目录权限: 请确保
$db->路径指向的目录具有读写权限 (0755 或 0777)。2. 定长字段: 搜索和排序仅支持定长字段,且定长字段长度一旦设定,修改需谨慎(涉及数据迁移)。
3. 数据备份: YKDB 数据就是普通文本文件,备份只需复制整个
data/目录即可。
技术支持
如有问题或建议,欢迎在评论区反馈。
YKDB - 让数据存储回归简单。
