索引 SET 规范要求数据库 SQL 开发中使用预编译语句以减少 SQL 编译时间,避免隐式转换导致的索引失效,充分利用表上已存在的索引,考虑数据库设计的扩展性,使用不同的账号连接不同的数据库,禁止跨库查询,禁止使用 SELECT *,必须使用 SELECT 查询,避免使用子查询,将子查询优化为 JOIN 操作,避免 JOIN 关联太多表,减少数据库交互次数,对应同一列进行 OR 判断时使用 IN 代替 OR,禁止使用 ORDER BY RAND() 进行随机排序,避免 WHERE 从句中的函数转换和计算。
数据库操作行为规范要求对超 100 万行的批量写操作分批进行,使用 pt-online-schema-change 修改大表结构,禁止为程序使用的账号赋予 super 权限,遵循权限最小原则,程序连接数据库账号只能在一个 DB 下使用,不准跨库,程序使用的账号原则上不准有 drop 权限。