数据库规范
1.尽量不要让数据库做运算,在程序上解决
2.控制表的数据量,纯int不超过1000w,纯char不超过500w,合理分表不超载,单库建议不要超过300-400张表
数据库的命名 公司名_项目名_模块名
库名、表名、字段名必须使用小写字母,“_”分割
库名、表名、字段名必须不超过12个字符。
库名、表名、字段名见名知意,建议使用名词而不是动词。
表必须使用InnoDB存储引擎。
表必须使用“t_”开头命名。
表字符集选择UTF8。
存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE。
建议使用UNSIGNED存储非负数值。
建议使用INT UNSIGNED存储IPV4。
整形定义中不添加长度,比如使用INT,而不是INT(4)。
使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED。
不建议使用ENUM类型,使用TINYINT来代替。
尽可能不使用TEXT、BLOB类型。
非唯一索引必须按照“idx_字段名称_字段名称[_字段名]”进行命名。
索引中的字段数建议不超过5个。
单张表的索引数量控制在5个以内。(索引的字段最好不要超过3个,要超过就要找理由找原因)
唯一索引必须按照“uk_字段名称_字段名称[_字段名]”进行命名。
建议字段定义为NOT NULL(datetime-- CURRENT_TIMESTAMP)。
不建议使用%前缀模糊查询,例如LIKE “%weibo”(索引优化)
WHERE条件中必须使用合适的类型,避免MySQL进行隐式类型转化。(比如var类型的数字,但是where后面条件是数字,那么数据库会对全表这个字段进行隐式类型转化,就导致全表扫描)
不用复合主键,用唯一索引代替
合理创建联合索引(避免冗余),(a,b,c) 相当于 (a) 、(a,b) 、(a,b,c)。
合理利用覆盖索引。
varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索引效率
【强制】表必备三字段:id, create_time, update_time。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号