52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# 架构与组件
|
|||
|
|
|
||
|
|
ChuSQL 采用客户端 / 服务端架构。数据库文件仅由 `chusql-server` 直接访问,其他组件通过网络接口与数据库服务通信。
|
||
|
|
|
||
|
|
## 主要组件
|
||
|
|
|
||
|
|
| 组件 | 作用 |
|
||
|
|
| --- | --- |
|
||
|
|
| `chusql-server` | 数据库服务,负责 SQL 执行、权限检查、事务与数据访问 |
|
||
|
|
| `chusql-web` | Web 管理端,通过数据库服务访问数据 |
|
||
|
|
| `csql` | 命令行客户端,通过数据库服务执行 SQL |
|
||
|
|
| `chusql-core/engine` | SQL 解析、语义检查、优化与执行 |
|
||
|
|
| `chusql-core/storage` | 页面、索引、日志与持久化存储 |
|
||
|
|
|
||
|
|
## 数据流
|
||
|
|
|
||
|
|
典型访问路径为:
|
||
|
|
|
||
|
|
```text
|
||
|
|
Web / CLI / 其他客户端
|
||
|
|
↓
|
||
|
|
TCP
|
||
|
|
↓
|
||
|
|
chusql-server
|
||
|
|
↓
|
||
|
|
SQL 引擎与存储层
|
||
|
|
↓
|
||
|
|
磁盘
|
||
|
|
```
|
||
|
|
|
||
|
|
所有 SQL 和权限检查均由数据库服务统一处理。Web 和 CLI 不直接访问数据目录,因此多个客户端可以同时连接同一数据库服务。
|
||
|
|
|
||
|
|
## 数据目录
|
||
|
|
|
||
|
|
数据保存在 `[storage] data_dir` 指定的位置,主要包含:
|
||
|
|
|
||
|
|
| 目录 | 内容 |
|
||
|
|
| --- | --- |
|
||
|
|
| `system/` | 系统数据库,包括账号和权限等系统信息 |
|
||
|
|
| `databases/<数据库名>/` | 用户创建的数据库 |
|
||
|
|
|
||
|
|
安装完成后只有系统数据库,不自动创建业务数据库。业务数据库需通过 `CREATE DATABASE` 创建。
|
||
|
|
|
||
|
|
## 数据库服务
|
||
|
|
|
||
|
|
`chusql-server` 默认监听 `127.0.0.1:7777`,客户端建立连接后完成登录、数据库选择和 SQL 执行。
|
||
|
|
|
||
|
|
每条连接拥有独立会话状态,例如当前数据库选择不会影响其他连接。
|
||
|
|
|
||
|
|
系统数据库及部分管理操作仅允许管理员访问。
|
||
|
|
|
||
|
|
服务监听地址、端口和请求限制可在 `chusql.toml` 的 `[server]` 分区中配置。
|