针对报表与高频读取设计路由,明确写后读、事务和复制延迟下的业务结果。
## 任务目标 请设计 MySQL 读写分离方案,并核对各类读取的一致性要求。 交付能用于评审或后续实施的具体方案、规则与样例;未要求实施的部分不声称已经落地。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 读写业务链:从当前需求或事务后查询入口识别目标;留空时优先检查写后回显、状态确认和列表查询三类已有读取,按业务后果形成路由分级。 工程与路由资料:读取数据源、代理和驱动配置、事务代码、路由注解或拦截器及已有复制延迟记录,自动确认连接入口和数据库拓扑。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 沿写入提交到立即回读、跨请求查询和分页查询追踪连接与目标节点。 - 读取数据源选择、代理路由、事务绑定与连接复用机制。 - 查找库存、权限和状态判断使用的查询,关联业务可见性要求。 - 读取延迟、只读节点故障和主库压力的既有指标与降级代码。 ### 可采用的默认处理 - 默认交付路由设计,不直接切换数据源或调整代理权重。 - 无法确定可容忍陈旧的读取保留现有路径;新候选不自动分流到只读节点。 - 延迟阈值和回流容量未测量时给观测及估算方法,不把阿里云代理规则套到其他实现。 ### 必须有依据的事项 - 写后读取、权限、库存或状态决策能否容忍旧数据的业务要求不明时,不决定分流与延迟边界。 - 节点异常时允许拒绝、延迟展示还是回流主库没有业务依据时,不默认以成功空数据降级。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 没有实际拓扑时交付业务一致性分类、附前提的路由候选及写后读取测试设计。 - 没有可用数据库时给记录实际访问节点与可见时间的方法,故障注入仅列为隔离验证计划。 ## 执行要求 适用范围:具备主库、只读实例或数据库代理的MySQL系统;阿里云代理路由规则须匹配实际版本,其他代理与应用自行路由应独立验证。 使用 RDS 代理分流读取时,核对事务、DDL 等请求的专门路由规则。 检查步骤: 1. 将查询按业务后果分类,分别记录必须看到刚写结果、可接受短暂陈旧和纯历史统计的场景,给出业务能接受的延迟边界,不能用统一延迟数字替代业务判断。 2. 绘制每条链路的连接入口和目标节点,包含事务、批任务、后台管理与故障处理;核对真实配置和调用结果,不能仅凭“只读”方法名称认定已访问从库。 3. 检查提交后立即查询、跨请求查询、分页和状态确认的行为,说明复制落后时用户可能看到什么;对状态决策、库存或权限判断列出需要的保证。 4. 比较代理路由、应用显式路由和保持主库查询的候选,明确驱动连接复用、事务绑定及路由切换的限制;不为了分担读压力把所有查询都切到只读节点。 5. 定义只读节点延迟过高、失联或容量不足时的降级,计算回流主库可能增加的压力;将限流、延迟展示和主库读取的业务影响分别说明。 6. 写入后读取、延迟注入、节点故障和恢复场景只在隔离测试环境或已明确授权的生产演练中验证,普通线上审查只采集已有指标;记录实际节点与数据可见时间;优化验收同时检查业务一致性和主库、只读节点的负载。 ## 交付与验收 输出要求:输出业务一致性分级、路由表、失败处理矩阵、配置修改范围和验收用例。每条路由列出触发条件、目标节点、可见性要求及降级方式;新增数据库字段必须附详细中文注释。 只报告有证据支持的问题;区分“已验证”“推测”和“待验证”,涉及变更时给出受影响文件或对象、最小修改和复核方法。代码与操作示例使用占位符,不写入真实密码。 ### 本条完成检查 - 每条路由对应触发条件、目标节点、事务限制、可见性要求和失败处理。 - 验证不只看读库负载,还核对写后可见、分页和状态决策的业务结果。 - 降级说明主库回流压力及限制,版本专属能力和未验证配置明确标注。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 来源(核验日期:2026-09-08): [阿里云《RDS MySQL:什么是读写分离》](https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/what-is-read-or-write-splitting/) 整理范围:仅依据上述公开文档的相关建议,业务场景、变量、检查流程与验收格式均为独立改写,不代表相关企业完整内部规范。
针对实际查询和数据分布评审索引、扫描范围及写入成本,避免只优化一条SQL却拖慢整体。
## 任务目标 请评审 MySQL SQL 与组合索引的上线方案。 以核查和评审为主,给出有证据的判断及可复核的修改建议;本次用户另有明确实现要求时,按其授权范围执行。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 查询与索引:优先采用当前慢查询或待改 SQL;留空时从目标模块的高频列表、关联与分页语句中选取有执行计划或调用证据的一组查询,保留未改索引的基线。 工程与查询资料:从 Mapper XML、迁移 DDL、现有索引和测试样例读取 SQL 与绑定参数,结合已有执行计划、查询指标及数据库版本信息展开审查。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 追踪查询对应的业务过滤、租户权限、排序稳定性与最大结果量。 - 读取字段与绑定参数类型、现有组合索引及其被哪些 SQL 使用。 - 对照代表性参数、已有执行计划和数据分布,识别热门值、空值与深分页差异。 - 检查候选索引对写入、存储和其他查询的影响,以及已有迁移审查方式。 ### 可采用的默认处理 - 默认只读评审,输出候选 SQL 和最小 DDL,不实际创建或删除索引。 - 缺计划和分布时先审查语义、类型及索引复用,性能结论保持条件化,不执行可能有成本或副作用的实际分析。 - 保留权限过滤、稳定排序及不改索引的基线,不自动接受云平台优化建议。 ### 必须有依据的事项 - 查询应返回的数据范围、排序或分页业务含义无法确定时,不采用可能改变结果的 SQL 改写。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 只有 SQL 时交付语义与类型检查、附前提的候选索引及获取代表性执行计划的方法。 - 无 SQL 时提供参数分布、索引复用与读写成本的评审表和同数据负载的对比用例。 ## 执行要求 适用范围:MySQL表与查询,具体优化能力以MySQL版本及存储引擎为准。阿里云自动优化是有产品前提的可选能力,不默认启用。 结合实际 SQL 评审索引,检查局部优化是否会使全局性能变差。 检查步骤: 1. 明确查询要返回的业务数据,记录租户或权限条件、排序稳定性、分页方式和最大结果量;先核对SQL语义,不能为速度删掉业务过滤条件。 2. 检查字段类型与参数类型是否一致,梳理等值、范围、关联和排序的组合;索引是否有效以目标版本计划验证,不把函数、非等值等语法一律认定无索引可用。 3. 读取现有计划和代表性参数,比较估算行数、实际可得的扫描信息及返回量;数据分布未知时提出采样方法,说明空值、热门值和历史数据可能改变选择性。 4. 提出最少数量的候选索引与改写方案,逐项说明服务哪些高频SQL、可否复用已有索引以及对写入和空间的影响;保留不改索引的基线方案。 5. 在相同数据与负载下比较正常参数、极端参数和深分页场景,核对返回结果一致;除目标查询延迟外,观察更新耗时、并发吞吐和资源使用。 6. 给出上线顺序、观察窗口及回退条件,索引创建与删除分开说明;如果有DAS建议,先判断其证据和适用范围,不把平台建议直接当成已批准变更。 ## 交付与验收 输出要求:按SQL清单、证据、候选方案对比、最小DDL和验证计划输出。所有性能结论给出测量条件,未执行的优化只写预期;新增字段时必须补齐详细中文COMMENT。 只报告有证据支持的问题;区分“已验证”“推测”和“待验证”,涉及变更时给出受影响文件或对象、最小修改和复核方法。代码与操作示例使用占位符,不写入真实密码。 ### 本条完成检查 - 候选索引逐一关联服务的 SQL、复用机会、写入和空间代价。 - 验证结果集与权限一致,再比较正常、极端参数和深分页的性能。 - 建议注明版本、数据与测量条件,创建删除分别评估,未执行 DDL 不表述为已优化。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 来源(核验日期:2026-09-08): [腾讯云《云数据库 MySQL 使用规范》](https://intl.cloud.tencent.com/zh/document/product/236/13390?lang=zh) [阿里云《RDS MySQL 自动SQL优化》](https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/use-the-automatic-sql-optimization-feature-for-an-apsaradb-rds-for-mysql-instance) 整理范围:仅依据上述公开文档的相关建议,业务场景、变量、检查流程与验收格式均为独立改写,不代表相关企业完整内部规范。
从业务实体、关系和访问需求形成可评审的表结构,所有新字段必须有详细中文注释。
## 任务目标 请完成 MySQL 业务建模和详细字段设计。 交付能用于评审或后续实施的具体方案、规则与样例;未要求实施的部分不声称已经落地。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 建模业务:从当前需求、页面字段和现有实体识别需要新增或整理的数据对象;留空时优先补齐已有业务表的实体关系与字段字典,不凭空设计新的业务模块。 需求与表结构资料:读取当前工程的实体、DTO、Mapper、迁移 DDL、表注释、查询样例和状态定义,自动确认 MySQL 版本、字符集与迁移方式。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 将业务实体、关系、当前状态和历史明细对应到现有表与写入路径。 - 核对主要查询、唯一性、租户或组织范围以及删除和保留行为。 - 读取字段单位、精度、空值、默认值、状态枚举和历史数据兼容约定。 - 从项目配置与迁移脚本确认方言、字符集、排序规则及结构变更方式。 ### 可采用的默认处理 - 默认交付设计与 DDL,不在数据库执行结构变更。 - 复用现有命名、主键、字符集与迁移约定;未确认的唯一性和必填关系不写成生效约束。 - 金额、累计量和未知值保留真实语义;新表和新字段均提供详细中文注释,容量未知用估算条件表达。 ### 必须有依据的事项 - 实体之间的基数、业务唯一性、状态含义或删除保留规则无法确定时,不擅自固化唯一键与约束。 - 金额单位、精度边界或实际存在的租户权限归属不明时,不给可直接落库且可能改变业务含义的字段定义。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 缺需求细节时先从已有 DDL 交付字段字典、关系疑点与注释补全建议,未确认关系保持候选。 - 既无工程也无业务材料时交付带详细注释的独立建模示例及实体到查询的设计表,注明不是实际业务结构。 ## 执行要求 适用范围:MySQL业务库设计;目标版本、字符集及部署方式以输入为准。DMS流程仅供有相应产品条件的项目采用,自建库可使用现有迁移工具。 上线前审核 SQL;使用 DMS 结构设计时,核对多环境结构一致性。 检查步骤: 1. 先梳理业务实体、实体关系、生命周期和唯一性,区分当前状态、明细记录和历史事实,明确哪些数据必须长期保留,哪些可以归档。 2. 根据真实查询和写入路径确定表的边界,列出需要联查的对象以及是否存在租户或组织隔离;未确认的业务关系不能直接写成唯一键或非空约束。 3. 建立字段字典,说明业务含义、类型长度、单位、精度、是否为空、默认值和枚举值;金额、比例和累计量按业务范围计算精度,未知值不能随意填零。 4. 生成DDL时为每张表写中文注释,并为所有新字段写详细中文COMMENT,包含含义、单位或枚举、空值与默认值语义;禁止只重复字段名充当注释。 5. 把主键、唯一约束及索引分别关联到业务规则和代表性SQL,评估写入成本、历史重复数据及兼容性;不要仅凭字段名称批量添加索引。 6. 给出开发、测试、生产的结构比对与变更顺序,列出旧数据填充、约束生效和回退条件;用新增、修改、删除及边界值样例核对业务能否完整表达。 ## 交付与验收 输出要求:交付实体关系的文字说明、字段字典、带详细中文注释的DDL、索引与查询映射、迁移步骤及验收用例。字段字典与DDL必须逐项对应,资料不足的字段保留待确认说明。 只报告有证据支持的问题;区分“已验证”“推测”和“待验证”,涉及变更时给出受影响文件或对象、最小修改和复核方法。代码与操作示例使用占位符,不写入真实密码。 ### 本条完成检查 - 实体关系、字段字典和 DDL 逐项一致,全部新字段注释解释含义、单位或编码、空值及默认值。 - 主键、唯一约束和索引分别有业务规则或代表性 SQL 依据。 - 迁移说明历史值填充、约束生效和兼容顺序,新增、修改、删除及边界样例能表达业务。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 来源(核验日期:2026-09-08): [腾讯云《云数据库 MySQL 使用规范》](https://intl.cloud.tencent.com/zh/document/product/236/13390?lang=zh) [阿里云《数据管理 DMS:结构设计》](https://help.aliyun.com/zh/dms/design-schemas) 整理范围:仅依据上述公开文档的相关建议,业务场景、变量、检查流程与验收格式均为独立改写,不代表相关企业完整内部规范。