(9) 不要在MySQL数据库中存放业务逻辑,如果把业务逻辑放到数据库中,将会影响横向发展和上线测试。建议把业务逻辑提前,放到前端或中间逻辑层,数据库仅作为存储层,实现逻辑与存储的分离;
(10) 出现业务部门人为误操作导致数据丢失,需要恢复数据的,必须第一时间通知DBA,并提供准确时间地点、误操作语句等重要线索;
(11) 业务部门程序出现BUG等影响数据库服务的问题,必须及时通知DBA,便于维护服务稳定;
(12) 重要项目的数据库方案选型和设计必须提前通知DBA参与。
7.2 避免使用触发器MySQL中触发器是行触发的,每次增加、修改或者删除记录都会触发进行处理,编写过于复杂的触发器或者增加过多的触发器对记录的插入、更新、删除操作会有比较严重的影响,因此不要将应用的处理逻辑过多地依赖于触发器来处理。触发器的功能通常可以用其他方式实现,确实需要采用触发器,请联系DBA进行确认。
7.3 避免使用存储过程和函数在数据库服务器上进行大量的复杂运算会占用服务器的CPU,造成数据库服务器的压力,影响数据库的正常使用,所以应尽量将这些运算操作分摊到应用服务器上执行。此外,存储过程难以调试和扩展,数据库扩展能力远远不如应用。
7.4 避免使用视图视图可能导致执行计划错乱,影响SQL运行效率。对视图的修改,数据库必须把它转化为对基本表的信息修改,不便于维护。
VIII 其他规范 8.1 编制文档对所有的命名规范、限制、数据字典、存储过程、函数都要编制文档。数据库文档化会大大减少犯错的机会,对开发、支持和跟踪修改非常有用。
8.2 维护计划规范(1) 数据归档设计
根据业务功能,做最小限度保留,将数据备份至归档库,系统功能兼容访问历史数据库。
(2) 数据归档删除
需要物理删除不需要归档的数据,直接由DBA排作业自动物理删除。