数据库规范计划
数据库规范计划
1/6
数据库规范计划
精心整理
数据库有关规范
使用utf8mb4字符集
所有表、字段必须写清中文说明
金额字段禁止使用小数存储(单位:分)
禁止使
禁止使用触发器
禁止在查问里指定索引
变量/参数/关系字段种类必须与字段种类一致
限制JOIN个数
限制SQL语句长度及IN子句个数
尽量防止大事务操作
封闭影响的行计数信息返回
使用UNIONALL替换UNION
查问大量数据使用分页或TOP
递归查问层级限制
数据库规范计划
数据库规范计划
2/6
数据库规范计划
精心整理
NOTEXISTS替代NOTIN
尽量防止使用OR运算符
增加事异样理体制禁止在数据做复运算
XML解析
字符串相像性比
字符串搜寻(Charindex)
复运算在程序端达成
禁止使用SELECT*
减少内存消耗和网
化器有时机从索引取所需要的列
表构化容易惹起出
禁止在索引列上使用函数或算
假在字段Col1上建有一个索引,下列景将能够使用到索引:
[Col1]=
[Col1]>100
[Col1]BETWEEN0AND99
[Col1]LIKE‘abc%’
[Col1]IN(2,3,5,7)
LIKE的索引
1.[Col1]like“abc%”?–indexseek?个就用到了索引
2.[Col1]like“%abc%”?–indexscan?而个就并未用到索引
3.[Col1]like“%abc”?–indexscan个也并未用到索引
我想从上而三个例子中,大家理解,最好不要在LIKE条件前面用模糊匹配,否就用不到索
引。
禁止使用游
关系数据适合会合操作,也就是由WHERE子句和列确定的果集作会合操作,游是提供
的一个非会合操作的途径。一般情况下,游的功能往往相当于客端的一个循的功能。
游是把果集放在服器内存,并通循一条一条理,数据源(特是内存和
源)的消耗是特别大的。
禁止使用触器
触器用不透明(用面都不知道会什么候触触器,生也也不知道,感莫名⋯⋯)禁止在里指定索引
With(index=XXX)(?在里我指定索引一般都用With(index=XXX)??)
数据库规范计划
数据库规范计划
3/6
数据库规范计划
随着数据的化句指定的索引性能可能并不最正确
索引用是透明的,如指定的索引被除将会致,不利于排障
新建的索引无法被用立刻使用,必通布代才能生效
量/参数/关字段型必与字段型一致
防止型外消耗的CPU,惹起的大表scan尤重
限制JOIN个数
个SQL句的表JOIN个数不能超5个
多的JOIN个数会致剖析器走行划
多JOIN在行划消耗很大
限制IN子句中条件个数
在IN子句中包括数量特别多的(数以千)可能会消耗源并返回
子句中条件个数限制在100个以内
尽量防止大事操作
数据库规范计划 来自淘豆网m.daumloan.com转载请标明出处.