2.0 KiB
2.0 KiB
架构与组件
ChuSQL 由三个可执行文件组成,共用同一份配置:
| 组件 | 作用 |
|---|---|
chusql-storage |
存储进程:页面与索引、WAL、崩溃恢复 |
chusql-web |
Web 管理端:REST 接口 + 浏览器里的数据库 IDE |
csql |
命令行客户端 |
数据流
SQL → 前端(chusql-web 或 csql)→ 本地端点 → chusql-storage → 磁盘。
Web 与命令行是两个并列的前端:Web 走 HTTP,命令行直连本地端点,两者共用同一份
chusql.toml、同一个管理员账号与同一张账号表——任意一端改的账号与权限,
另一端立刻生效。
一次请求经过什么
- 浏览器或命令行发起 SQL;
- 解析与语义检查(表/列是否存在、类型是否匹配、权限是否足够)在这里完成,不合格的语句不会落到磁盘;
- 合格语句通过本地端点交给
chusql-storage; - 存储进程读写页面与索引,写之前先记 WAL;
- 结果原路返回。
本地端点
前端与存储进程之间只有一个端点,由 [server] pipe_name 决定:Windows 是具名管道,
Linux / macOS 是套接字文件(规则见 config.md 的「端点」一节)。
数据在哪里
数据都在 [storage] data_dir 下。不写这个键就按平台惯例:Windows %LOCALAPPDATA%\ChuSQL\data,
Linux / macOS ${XDG_DATA_HOME:-~/.local/share}/chusql/data。
| 目录 | 内容 |
|---|---|
system/ |
系统库:账号表与角色授权表 |
databases/<库名>/ |
各自建的库 |
服务启动后只建 system,没有默认工作库;其余库由你自己 CREATE DATABASE 创建。