MySQL建表的规范总结[归类].pdfVIP

  • 1
  • 0
  • 约3.28千字
  • 约 3页
  • 2021-10-19 发布于福建
  • 举报
Mysql 建表与索引使用规范整理 一,设计表规范: 1. MySQL 建表,字段需设置为非空,需设置字段默认值。 2. MySQL 建表,字段需 NULL 时,需设置字段默认值,默认值不为 NULL 。 3. MySQL 建表,如果字段等价于外键,应在该字段加索引。 4. MySQL 建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默 认值,需保持一致,否则无法正确使用索引进行关联对比。 5. MySQL 使用时,一条 SQL 语句只能使用一个表的一个索引。所有的字段类型都可以索 引,多列索引的属性最多 15 个。 6. 如果可以在多个索引中进行选择, MySQL 通常使用找到最少行的索引, 索引唯一值最高 的索引。 7. 建立索引 index (part1,part2,part3 ),相当于建立了 index(part1),index(part1,part2) 和 index (part1,part2,part3 )三个索引。 8. MySQL 针对 like 语法必须如下格式才使用索引: SELECT * FROM t1 WHERE key_col LIKE ,ab%? ; 9. SELECT COUNT(*) 语法在没有 where 条件的语句中执行效率没有 SELECT COUNT(col_name) 快,但是在有 where 条件的语句中执行效率要快。 10. 在 where 条件中多个 and 的条件中,必须都是一个多列索引的 key_part 属性而且必须 包含 key_part1 。各自单一索引的话,只使用遍历最少行的那个索引。 11. 在 where 条件中多个 or 的条件中,每一个条件,都必须是一个有效索引。 12. ORDER BY 后面的条件必须是同一索引的属性,排序顺序必须一致(比如都是升序或 都是降序)。 13. 所有 GROUP BY 列引用同一索引的属性,并且索引必须是按顺序保存其关键字的。 14. 、 JOIN 索引,所有匹配 ON 和 where 的字段应建立合适的索引。 15. 对智能的扫描全表使用 FORCE INDEX 告知 MySQL ,使用索引效率更高。 16. 定期 ANALYZE TABLE tbl_name 为扫描的表更新关键字分布 。 17. 定期使用慢日志检查语句,执行 explain ,分析可能改进的索引。 18. 条件允许的话,设置较大的 key_buffer_size 和 query_cache_size 的值(全局参数), 和 sort_buffer_size 的值( session 变量,建议不要超过 4M )。 二,命名规范 : 1.主键的命名采用如下规则: 主键名用 pk_ 开头,后面跟该主键所在的表名。 主键名长度不能超过 30 个字符。 如果过长, 可对表名进行缩写。缩写规则同表名的缩写规则。主键名用小写的英文单词来表示。 2. 外键的命名采用如下规则: 外键名用 fk_ 开头,后面跟该外键所在的表名和对应的主表名(不含 t_ )。子表名和父表名 自己用下划线 (_ )分隔。 外键名长度不能超过 30 个字符。 如果过长, 可对表名进行缩写。 缩写规则同表名的缩写规则。外键名用小写的英文单词来表示。 3. 索引的命名采用如下规则: 1)索引名用小写的英文字母和数字表示。索引名的长度不能超过 30 个字符。 2 )主键对应的索引和主键同名。 3 )唯一性索引用 uni_ 开头,后面跟表名。一般性索引用 ind_ 开头,后面跟表名。 4 )如果索引长度过长,可对表名进行缩写。缩写规则同表名的缩写规则 5 )索引基本语法 CREATE INDEX 索引名称 ON 表名 (字段 ); show index from 表名 ; drop index 索引名称 on 表名 ; 6 )唯一

文档评论(0)

1亿VIP精品文档

相关文档