YKDB — 高性能文本数据库

YKDB — 高性能文本数据库

版本:v3.2 (2026-02-12) | 状态:生产就绪 (Production Ready)
下载https://1syan.com/files/ykdb/ykdb.zip

简介

YKDB 是一个纯 PHP 实现的超轻量级、高性能文本数据库系统,无需 MySQL 等重型数据库依赖。数据以纯文本文件形式存储,支持定长字段不定长字段混合存储,拥有极高的读写性能和并发处理能力。
YKDB 无需复杂配置,无需安装任何扩展,只要环境能跑 PHP 就能立即使用。特别适合中小型网站、API 缓存、日志系统、临时数据存储等场景。

核心特性

特性 说明
极速读写 独创文件指针定位技术,百万级数据秒级读取
零依赖 纯 PHP 代码,无需 PDO/MySQLi,无需数据库服务器
高并发 内置文件锁机制 + 写入队列,支持多进程安全并发写入
灵活搜索 支持精确搜索、模糊搜索、批量搜索及字段排序
混合存储 定长字段(类似 CHAR,存取极快)+ 不定长字段(类似 TEXT)

快速上手

1. 字段配置 (data.php)

在使用之前,先定义数据库结构。创建一个 data.php 文件:

;name,100;age,10;status,5

格式说明:字段名,长度,以分号分隔。

2. 初始化数据库

<?php
require 'ykdb.php';
$db = new YKDB();
$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,
'bio' => '更新后的介绍'
];
// 更新 ID 为 100 的记录
$db->写入($update_data, 100);

6. 删除数据

// 删除 ID 为 100 的记录
$db->删除(100);
// 删除并指定清理哪些字段(可选)
$db->删除(100, 'bio|address');

7. 搜索数据

// 精确搜索:查找 name 为 "张三" 的记录 ID
$ids = $db->搜索('name=>张三');
// 模糊搜索(默认模式):查找 name 包含 "张" 的记录
// 注意:搜索仅支持定长字段
$ids = $db->搜索('name=>张');
// 多条件搜索(AND 关系)
$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 — 让数据存储回归简单。

THE END
喜欢就支持一下吧
点赞0 分享 收藏
评论 抢沙发
欢迎您留下宝贵的见解!(至少 2 字)
提交
昵称

昵称

昵称 表情 快捷回复

    暂无评论内容