SQL 日常补漏 不断更新ing

数据库范式

  • 字段原子性    表设计中的所有字段都应该是原子性的 不可再分 ( 依赖主观设计 ) 
  • 记录独立性    表数据中的所有单例记录都应该是独立可区分的 ( 依赖主键 ) 
  • 关联数据唯一性    两表关联时 关联记录的所有字段都应该是非重复的 ( 依赖主观设计 ) 

例如

表1  UserInfo:                                                           表2  GradeInfo:

T1 UserInfo

ID

Name Age Sex   T2 GradeInfo ID UID UName Grade Class
  1952 James 18 Male     3200 1952 James 7 2

如上 已经用UID和ID进行关联后 不应有UName字段 造成数据冗

数据库优化

  • 在经常检索的字段上(select * from Person where Name=@Name)使用索引提高查询速度
  • select 中只列出必要的字段,而不是*
  • 避免隐式类型转换造成的全表扫描  在索引上使用函数也会造成全表扫描(因为索引只是为字段建立的,一旦使用表达式或者函数,那么索引就是失效了,当然也可以使用“函数索引”、“表达式索引”解决这个问题),使用索引不一定能提高查询速度
  • 避免在索引列上使用计算(where Name+'A'=@MyName) 
  • 附 : 不进行无意义优化,根据性能查看器的报表,对最耗时的 SQL 进行优化。 

猜你喜欢

转载自blog.csdn.net/weixin_38807994/article/details/87968903
今日推荐