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. 1. 目录权限: 请确保 $db->路径 指向的目录具有读写权限 (0755 或 0777)。

  2. 2. 定长字段: 搜索和排序仅支持定长字段,且定长字段长度一旦设定,修改需谨慎(涉及数据迁移)。

  3. 3. 数据备份: YKDB 数据就是普通文本文件,备份只需复制整个 data/ 目录即可。

技术支持

如有问题或建议,欢迎在评论区反馈。


YKDB - 让数据存储回归简单。

  1. 上一篇:安装大名鼎鼎的openclaw——基于huggingface免费服务器
  2. 下一篇:没有了
发表评论