增加规则
规则 一 禁止使用TIMESTAMP字段 规则 二 添加字段 不带AFTER, BEFOR 规则 三 建议用BIGINT 代替DECIMAL 规则 四 行定义大小不超过 N 字节 规则五 SELECT 不能有ORDER BY 规则六 JOIN字段类型不一致 规则七 IN的值必须少于 N 个
规则八 VARCHAR 长度 不超过 N
规则九 建议建表表不能超过 N个字段
规则十 建表 必须含字段 CREATE_TIME, UPDATE_TIME 且默认值 DEFAULT CURRENT_TIMESTAMP(6)
ON UPDATE CURRENT_TIMESTAMP(6)
背景 1 TIMESTAMP 有2038年限制 并且时区转换 2 带AFTER 的DDL 会COPY 整表 3 DECIMAL性能不高 4 INNODB 默认16K 限制行最大值是8KB 5 ORDER BY 对MYSQL性能影响大, 不太好优化, 可以把排序前置到 后端,前端,客户端 6 JOIN字段类型不一致,会导致隐式转换 7 IN (......) 数量超过某个阀值 性能下降 8 超过255 多出的会存放在溢出页 9 避免表字段太多 10 避免后期对数据生命周期管理不便
需要确认下以上规则我们是否已有,没有的话建议实现
针对规则二:mysql 使用alter语法添加字段,如果想指定位置,只能使用first和after指定字段位置,没有before。因此,将规则二更新为“alter字段禁止使用first,after” mysql文档链接
规则8已经有了
规则10建议拆分成2条规则
规则9已经在企业版实现,后期考虑开放到社区版
规则8已经有了
也在企业版中
@Sharkzeng 规则四主要的应用场景是啥?
https://github.com/actiontech/sqle/issues/794