MySQL常用规范
一. 建表规范 1.使用InnoDB引擎 无特殊情况必须使用InnoDB引擎(5.5版本后默认引擎) InnoDB支持事务、行级锁、MVCC,并发性能更好,CPU及内存缓存页优化使得资源利用率更好。 2.规范表、字段的命名 表名、字段名,小写下划线风格,尽量做到见名知意。 3.规范索引命名 主键索引名为pk_表名_字段名,唯一索引名为uk_表名_字段名,普通索引为idx_表名_字段名。 4.字段NOT NULL的好处 NULL的列使索引、索引统计、值得比较都更加复杂; NULL类型MySQL内部需要特殊处理,增加处理记录的复杂性,NULL的列需要额外的空间来标识; 对NULL的处理是能采用IS NULL或IS NOT NULL:WHERE name != '张三'; 的查询结果不会包含name为NULL的记录。 5.char与varchar 如果存储的字符串长度固定,则应该使用char定长字符串类型,存取效率较高; 如果字符串长度不固定,则应该使用varchar变长字符串类型,它会根据字符串实际长度分配空间,节约资源。如果字符串长度超过5000,应该定义字段类型为text等大文本,并独立一张表,用主键关联,避免影响其他字段的索引效率。 二. 索引规范 1.善于使用唯一索引 业务上具有唯一特性的字段,即使是多个字段组成,也必须建成唯一索引,唯一索引可以显著提高查询效率