# DBTableAnalyzer **Repository Path**: cntaige/dbtable-analyzer ## Basic Information - **Project Name**: DBTableAnalyzer - **Description**: DBTableAnalyzer 是一个用 Golang 开发的数据库表结构分析工具,主要用于分析数据库中的表结构,找出结构相同的重复表,并统计表的记录数量。该工具可以帮助数据库管理员快速识别数据库中的冗余表,优化数据库结构,提高数据库性能。 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-20 - **Last Updated**: 2025-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据库表结构分析工具 (DBTableAnalyzer) ## 项目简介 DBTableAnalyzer 是一个用 Golang 开发的数据库表结构分析工具,主要用于分析数据库中的表结构,找出结构相同的重复表,并统计表的记录数量。该工具可以帮助数据库管理员快速识别数据库中的冗余表,优化数据库结构,提高数据库性能。 ## 主要功能 1. **重复表结构检测**:分析数据库中所有表的结构,找出结构完全相同的表 2. **数据量统计**:统计每张表的记录数,并生成汇总报告 3. **最大表识别**:识别并输出数据量最大的前5张表 4. **智能表选择**:在重复表中,优先保留没有后缀标记的表进行统计 5. **结果导出**:将分析结果导出到文本文件,便于后续处理和分析 ## 使用方法 ### 安装依赖 在使用前,请确保已安装 Go 环境,并安装必要的依赖: ```bash go mod tidy ``` ### 编译程序 ```bash go build -o DBTableAnalyzer.exe cmd/main.go ``` ### 运行程序 ```bash .\DBTableAnalyzer.exe -db "用户名:密码@tcp(数据库地址:端口)/数据库名" #.\DBTableAnalyzer.exe -db "root:password@tcp(localhost:3306)/mydb" ``` ### 参数说明 - -db :数据库连接字符串,格式为 用户名:密码@tcp(数据库地址:端口)/数据库名 ### 输出文件 程序运行后会生成以下文件: 1. duplicate_tables.txt :包含所有结构相同的重复表组 2. largest_tables.txt :包含数据量最大的前5张表 ## 注意事项 1. 程序默认使用 MySQL 数据库,如需支持其他数据库,需要修改代码 2. 程序会自动过滤名称中包含 "copy" 字样的表,不计入统计 3. 在重复表中,程序会优先选择没有后缀标记的表进行统计 4. 程序使用 slog 日志库,会在控制台输出详细的执行信息 ## 示例输出 ### duplicate_tables.txt ```plaintext 数据库重复表结构报告 ==================== 重复组 1: [table_a table_a_20230212] 重复组 2: [table_b_20230203 table_b_20230208] 重复组 3: [table_c_20230112 table_c_20231220 table_c_231130] ``` ``` ### largest_tables.txt ```plaintext 数据量最大的表 ============== 1. log_detail_table: 577596 条记录 2. log_main_table: 18903 条记录 3. dimension_attr_table: 11659 条记录 4. price_quotation_table: 5400 条记录 5. bank_info_table: 4238 条记录 ```