乐于分享
好东西不私藏

【v4版】Excel与数据库双向增量同步客户端

【v4版】Excel与数据库双向增量同步客户端

Excel文件同步功能支持将Excel数据与系统数据库进行双向同步,适用于以下场景:

业务人员在Excel中维护数据,需要自动同步到数据库

系统数据库中的数据需要定期导出到Excel报表

多台电脑上的Excel文件需要与同一数据库保持同步

核心特性

增量同步

只传输变化的数据行,传输量减少99%

双向同步

支持推送(A=>B)和拉取(B=>A)两个方向

加密传输

AES-CBC加密 + 会话密钥协商 + Token认证

_sync_id主键对应

通过数据库主键ID建立Excel行与数据库行的稳定对应,修改/删除精准识别

查重更新

基于指定字段判断重复,支持只更新变化字段(_sync_id缺失时退化匹配)

定时执行

支持定时任务和文件监听自动同步

Web配置界面

双击即可启动浏览器配置,无需手动编辑配置文件

两种方案

方案A:服务器本地同步

当Excel文件位于服务器本地(或局域网共享目录)时,Go后端直接读取文件并入库,无需客户端。

适用场景:服务器Windows运行,Excel文件在同一台机器或共享目录上。

方案B:远程客户端同步

当Excel文件不在服务器上时,使用Go编译的同步客户端,通过加密通道与服务器通信。

适用场景:远程电脑上的Excel文件需要与服务器数据库同步。

方案A使用方法

1. 配置同步

进入项目表的配置页面,切换到"Excel文件同步"标签页:

输入服务器本地Excel文件路径(如 D:\data\report.xlsx)

点击"测试文件"验证路径是否正确

选择工作表

勾选需要同步的字段

配置字段映射(Excel列名 → 数据库字段名)

保存配置

2. 手动同步

点击"立即同步"按钮,后端直接读取Excel文件并入库。

3. 定时同步

在计划任务中添加Excel同步类型的任务,选择要同步的项目,设置执行周期。

方案B使用方法

1. 生成同步链接

在项目表的"Excel文件同步"标签页中,点击"生成同步链接"按钮,系统会生成:

推送地址(A=>B):用于客户端向服务端推送数据

拉取地址(B=>A):用于客户端从服务端拉取数据

同步Token:客户端认证凭证

项目表名:目标数据表标识

2. 配置客户端

根据同步方向,点击"复制推送配置(A=>B)"或"复制拉取配置(B=>A)",将内容保存为客户端目录下的 config.json 文件,修改 filePath 为本地Excel路径:

{ ”serverUrl”: ”https://your-server.com/v1/SyncExcelRows”, ”syncToken”: ”从后台复制的Token”, ”tablename”: ”从后台复制的表名”, ”filePath”: ”C:\\data\\report.xlsx”, ”sheet”: ””, ”fields”: ””, ”mapping”: ””, ”interval”: 300, ”cacheDir”: ””, ”syncDirection”: ”push}

配置项说明

字段
必填
说明
serverUrl
从后台复制的同步地址
syncToken
从后台复制的同步Token
tablename
从后台复制的项目表名
filePath
本地Excel文件路径,留空时自动搜索当前目录下的xlsx文件
sheet
工作表名,留空默认第一个
fields
要同步的Excel列名,逗号分隔,留空默认全部
mapping
字段映射,格式源列=目标字段,逗号分隔,留空默认同名
interval
定时同步间隔(秒),0表示只执行一次
cacheDir
缓存目录,留空默认与配置文件同目录
syncDirection
同步方向:push(A=>B推送) 或 pull(B=>A拉取),默认push

3. 运行客户端

最简方式:双击运行

直接双击 excelsyncclient.exe,程序会:

读取当前目录下的 config.json

如果 filePath 为空,自动搜索当前目录下的xlsx文件(只有一个时自动使用)

如果缺少必要配置(serverUrl/syncToken),自动打开浏览器配置界面

Web配置界面

当配置不完整或使用 -gui 参数启动时,自动打开浏览器配置界面:

excelsyncclient.exe配置不完整时自动进入Web UIexcelsyncclient.exe -gui# 强制启动Web配置界面excelsyncclient.exe -port 18280# 指定Web界面端口(默认18280)

Web界面功能:

📊 同步状态面板:实时显示总行数、已同步、新插入、已更新、已删除、已跳过

⚙️ 连接配置:填写服务器地址、Token、表名、同步方向、定时间隔

📄 Excel文件选择:自动列出当前目录下的xlsx文件,点击即选

📋 同步日志:实时显示同步结果

🔄 一键操作:立即同步 / 启动定时同步 / 停止定时

命令行方式

单次同步excelsyncclient.exe -config config.json# 定时同步(每5分钟)excelsyncclient.exe -config config.json -interval 300# 监听文件变化自动同步excelsyncclient.exe -config config.json -watch# 强制全量同步(忽略缓存)excelsyncclient.exe -config config.json -full

命令行参数

参数
说明
-config
配置文件路径,默认 config.json
-server
服务器同步地址(覆盖配置文件)
-token
同步Token(覆盖配置文件)
-table
项目表名(覆盖配置文件)
-file
Excel文件路径(覆盖配置文件)
-sheet
工作表名(覆盖配置文件)
-fields
同步字段(覆盖配置文件)
-mapping
字段映射(覆盖配置文件)
-interval
定时间隔秒数(覆盖配置文件)
-watch
监听文件变化自动同步
-full
强制全量同步
-gui
启动Web配置界面
-port
Web界面端口,默认18280

同步方向详解

A=>B 推送模式 (syncDirection: "push")

以客户端Excel数据为准,将本地xlsx的变化推送到服务端数据库。

流程

客户端读取Excel文件,对每行数据计算SHA256哈希

与本地SQLite缓存对比,找出新增和变化的行

对比缓存与当前Excel的 _sync_id 集合,找出被删除的行

只发送变化行和删除行到服务端(加密传输)

服务端优先按 _sync_id 精确更新,无 _sync_id 时按查重字段处理;删除行按 _sync_id 物理删除

同步成功后更新本地缓存

适用场景:Excel是数据源,业务人员在Excel中维护数据。

B=>A 拉取模式 (syncDirection: "pull")

以服务端数据库为准,将数据库的变化写回客户端xlsx。

流程

客户端发送上次同步的数据哈希到服务端

服务端对比当前数据哈希,无变化则返回空

有变化时返回全部数据行(含 _sync_id 字段,即数据库主键ID)

客户端读取本地xlsx,优先按 _sync_id 匹配已有行,无 _sync_id 时按查重字段退化匹配

更新变化的单元格,新增行追加到末尾

Excel中存在但服务端已不存在的 _sync_id 对应的行被删除

保存xlsx文件并更新缓存

适用场景:数据库是数据源,需要将数据更新到本地Excel报表。

如果文件正被excel软件打开,则不可写入,会先写到临时文件中,在关闭excel后再写入到正式文件:

_sync_id 主键对应机制

为什么需要 _sync_id

传统基于查重字段(cczd)匹配存在两个根本缺陷:

修改变新建:查重字段值被修改后,匹配失败导致旧行残留+新行追加

删除无法识别:无任何机制判断哪些行被删除,导致已删除行永久残留

_sync_id 列存储数据库行主键ID,作为Excel行与数据库行的稳定唯一对应关系,不受业务字段修改影响。

_sync_id 列的维护

拉取模式:服务端 PullExcelRows 返回数据时自动包含 _sync_id 字段,客户端写入Excel时自动维护该列(放在最后一列)

推送模式:客户端读取Excel时自动读取 _sync_id 列,发送给服务端按主键更新/删除

匹配优先级

服务端 SyncExcelRows 和客户端 writeRowsToExcel 均按以下优先级匹配:

优先按 _sync_id 匹配(最稳定,按数据库主键精确对应)退化按查重字段匹配(当 _sync_id 缺失时,如首次同步或旧Excel文件)追加为新行(无任何匹配时)

首次使用建议

推送模式下首次同步时Excel无 _sync_id 列,会全量推送插入。建议首次使用时先执行一次拉取让Excel获得 _sync_id 列,之后推送/拉取都能精确识别修改和删除。

若不便先拉取,推送模式也会在后续同步中通过查重字段建立对应关系,但修改/删除的识别精度会降低(依赖查重字段值不变)。

增量同步原理

传统全量同步每次传输整个Excel文件(base64编码→JSON→AES加密),即使只改了几行也要传输完整文件。

增量同步使用SQLite本地缓存+行级SHA256哈希对比:

每行数据 → 字段名排序拼接 → SHA256 → 与缓存对比 → 只发送变化行
场景
全量传输
增量传输(50行变化)
节省
100行
~70KB
~5KB
93%
1000行
~2.8MB
~35KB
99%
10000行
~28MB
~350KB
99%
50000行
~135MB
~1.7MB
99%

无数据变化时零传输,直接跳过。

安全机制

Token认证:每个项目生成唯一的同步Token,请求时通过 X-Sync-Token 头部验证

会话密钥协商:客户端请求 /v1/getsession 获取临时会话密钥

AES-CBC加密:请求体和响应体均使用AES-CBC加密,每次请求生成随机IV

无JWT依赖:同步接口使用独立的Token认证,不依赖用户登录JWT

API接口

接口
方法
说明
认证方式
/v1/TestExcelFileSync
POST
测试Excel文件路径可达性
JWT
/v1/GetExcelFileSyncFields
POST
获取Excel列名列表
JWT
/v1/ImportExcelFileSync
POST
方案A手动触发同步
JWT
/v1/GenerateSyncLink
POST
生成同步链接和Token
JWT
/v1/UploadExcelSync
POST
全量上传Excel文件
SyncToken
/v1/SyncExcelRows
POST
增量推送行数据(A=>B),含删除行
SyncToken+AES
/v1/PullExcelRows
POST
数据拉取(B=>A),返回含_sync_id
SyncToken+AES

SyncExcelRows 请求结构

{ ”rows”: [{”_sync_id”: 1, ”姓名”: ”张三”, ”年龄”: ”25”}, ...], ”deletedRows”: [{”_sync_id”: 5}, {”_sync_id”: 8}], ”mode”: ”increment”, ”totalRows”: 100}

rows:新增/修改的行数据,含 _sync_id 时按主键更新,否则按查重字段处理

deletedRows:被删除的行,仅含 _sync_id,服务端按主键物理删除

mode:full(全量) / increment(增量)

totalRows:Excel文件总行数(用于日志)

PullExcelRows 响应结构

{ ”changed”: true, ”dataHash”: ”abc123...”, ”rows”: [{”_sync_id”: 1, ”姓名”: ”张三”, ”年龄”: ”25”}, ...], ”totalRows”: 100, ”cczdFields”: [”姓名”], ”gxsjFields”: [”年龄”]}

rows:中每行含 _sync_id 字段(数据库主键ID),客户端据此建立行对应

cczdFields:gxsjFields 为中文名,供客户端无 _sync_id 时退化匹配

常见问题

Q: 首次同步很慢?

A: 首次同步SQLite缓存为空,会自动退化为全量同步,后续同步只传输变化行。

Q: Excel列名和数据库字段名不一致怎么办?

A: 在配置中使用mapping字段映射,格式为Excel列名=数据库字段名,多个用逗号分隔。

Q: 如何处理重复数据?

A: 系统优先按 _sync_id(数据库主键)精确匹配。无 _sync_id 时退化按查重字段(cczd)判断。可在项目表配置中设置查重字段和更新字段(gxsj)。

Q: 修改行的数据为什么以前会变成新建?

A: 旧版本基于查重字段匹配,查重字段值被修改后匹配失败导致旧行残留+新行追加。新版引入 _sync_id 主键列,按数据库主键精确对应,不受业务字段修改影响。建议首次使用时先执行一次拉取让Excel获得 _sync_id 列。

Q: 删除的行会如何处理?

A: 推送模式:Excel删除的行,客户端检测到 _sync_id 缺失,发送删除请求,服务端按主键物理删除。拉取模式:服务端删除的行,客户端检测到 _sync_id 不在服务端返回数据中,从Excel删除对应行。

Q: 客户端缓存损坏怎么办?

A: 删除缓存目录中的 .db 文件,或使用 -full 参数强制全量同步,客户端会自动重建缓存。

Q: 多个客户端同步同一项目会冲突吗?

A: 服务端通过 _sync_id 主键和查重字段保证数据一致性,多个客户端推送的数据会按对应逻辑合并,不会产生重复记录。

Q: 双击exe后没有同步?

A: 双击运行时,如果config.json中缺少filePath,程序会自动搜索当前目录下的xlsx文件;如果缺少serverUrl或syncToken,会自动打开浏览器配置界面,在界面中完成配置后即可同步。

Q: Web配置界面端口被占用怎么办?

A: 程序会自动从默认端口18280开始递增寻找可用端口,无需手动处理。

Q: _sync_id 列可以手动编辑吗?

A: 不建议手动编辑。_sync_id 由系统自动维护,手动修改会导致行对应关系错乱。若不慎损坏,删除该列后执行一次拉取即可重建。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-24 20:35:03 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/791400.html
  2. 运行时间 : 0.157827s [ 吞吐率:6.34req/s ] 内存消耗:4,660.36kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0dab3e4bc17b2625897dc9ea927e18e8
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000736s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000666s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000296s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000302s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000646s ]
  6. SELECT * FROM `set` [ RunTime:0.000215s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000603s ]
  8. SELECT * FROM `article` WHERE `id` = 791400 LIMIT 1 [ RunTime:0.000556s ]
  9. UPDATE `article` SET `lasttime` = 1782304503 WHERE `id` = 791400 [ RunTime:0.005847s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000264s ]
  11. SELECT * FROM `article` WHERE `id` < 791400 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000474s ]
  12. SELECT * FROM `article` WHERE `id` > 791400 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000379s ]
  13. SELECT * FROM `article` WHERE `id` < 791400 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001035s ]
  14. SELECT * FROM `article` WHERE `id` < 791400 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002472s ]
  15. SELECT * FROM `article` WHERE `id` < 791400 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006031s ]
0.160952s