数据库命名与变更流程需遵循可读性强、可追溯性高原则:库名用“业务域_环境_功能”,表名体现业务实体与状态,字段名语义清晰,索引/约束名统一前缀;所有SQL变更须经提单、审核、执行、验证闭环管控,并配套工具与巡检机制保障落地。
数据库命名和变更流程是SQL运维规范中最基础也最关键的两环。命名不统一,后续排查、协作、自动化都难推进;变更无流程,轻则数据出错,重则服务中断。核心原则就两条:可读性强、可追溯性高。
命名不是随便起个名字,而是要让任何人看到名字就能大致判断用途、归属和生命周期。
finance_prod_core(财务域生产核心库)、user_test_analytics(用户域测试分析库);禁止使用拼音缩写或模糊词如db1、new_table
order_main、order_refund_log、user_profile_snapshot;避免t_user、tb_order这类带前缀的冗余写法created_at、is_deleted、total_amount_cny;禁用flag1、data、info等泛化字段名idx_order_main_user_id(普通索引)、uk_order_main_order_no(唯一键)、fk_order_refund_log_order_id(外键)所有DDL/DML(含建表、改结构、删数据)必须走审批+执行+验证闭环,不能直连生产库敲命令。
SELECT COUNT(*))
执行阶段:仅允许通过自动化平台或指定跳板机执行;所有操作自动记录操作人、时间、SQL原文、影响行数;禁止在非维护窗口执行;超5分钟未响应自动中止光有流程不够,得有工具和习惯兜底。
sql_safe_updates=1,防止无WHERE的UPDATE/DELETEschema_history表,每次变更成功后自动写入版本号、SQL哈希值、执行人、时间戳,支持快速溯源_dev后缀库,测试SQL必须先在dev库验证通过,才允许提测到预发规范落地靠约束,也靠反馈。把常见问题变成检查项,嵌入日常。
SELECT *的定时任务SQL