2. 数据表
必须使用INNODB存储引擎
英文名: InnodbEngineRequired
规则描述: 该规则要求所有创建表的操作必须指定INNODB作为存储引擎,因为INNODB提供了事务支持、行级锁定和更好的恢复能力。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE
触发条件: 创建表时未指定INNODB为存储引擎。
可配置: 否
支持的数据库类型: MySQL
禁止使用分区表
英文名: PartitionedTableDisallowed
规则描述: 此规则禁止创建分区表,因为分区表增加了管理复杂性,或者在某些情况下会影响性能。
预警级别: 提示(Notice)
审查对象: CREATE TABLE
触发条件: 创建表时使用了分区功能。
可配置: 否
支持的数据库类型: MySQL
表只能有一个自增列
英文名: OneIdentityColumnAllowed
规则描述: 要求每个表只能有一个自增列,以避免复杂的索引管理和潜在的性能问题。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE
触发条件: 表定义了多个自增列。
可配置: 是
案例: 表达式可以配置为 0.8
,表示MySQL InnoDB和MyISAM引擎不允许存在多个自增字段。
支持的数据库类型: 所有 (ALL)
表的列数不建议超过阈值
英文名: NumOfColumnsExceedThreshold
规则描述: 建议表的列数不要超过特定的阈值,以优化性能和简化管理。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE
触发条件: 表的列数超过了预设的阈值(如32)。
可配置: 是
案例: 表达式可以配置为 32
,表示表的列数不应超过32个。
支持的数据库类型: 所有 (ALL)
表必须包含的列及类型
英文名: SpecificColumnsRequired
规则描述: 要求表必须包含特定的列及其数据类型,如id和时间戳列,以满足应用程序的需求。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE
触发条件: 表未包含指定的列及其类型。
可配置: 是
案例: 表达式可以配置为 id:unsigned int,created_ts:timestamp,updated_ts:timestamp
,表示表必须包含这些列及其类型。
支持的数据库类型: 所有 (ALL)
禁止使用视图
英文名: ViewDisallowed
规则描述: 禁止创建视图,因为视图增加了查询复杂性,可能影响性能。
预警级别: 警告 (Warning)
审查对象: CREATE VIEW
触发条件: 创建了视图。
可配置: 否
支持的数据库类型: MySQL