MySQL开发规范禁用列表

1SELECT严禁select *查询,必须明确查询字段禁用如果表列发生变化,会使结果集变化
2严禁SQL关联表超过3张,关联字段数据类型必须一致,且能利用索引禁用超过3张表进行拆分
3使用子查询,将子查询改写为表连接禁用 
4使用or,or改为union all 或者in禁用 
5使用select … for update禁用数据行锁,容易造成死锁
6使用开关条件,如1=1,1=0,1>2禁用会导致sql解析器生成错误执行计划,并且会引起sql注入
7严禁SQL中进行计算或嵌套判断禁用 
8WHERE条件WHERE子句的表字段上使用表达式或函数禁用当WHERE子句的表字段使用函数后,将会导致该字段无法使用上索引,建议在字段的值域上加函数、计算或转换的表达式。
9传入变量类型与查询条件中字段类型不匹配禁用 
10单表数据量大,禁止WHERE子句中使用全模糊、左模糊查询:where xx like '%xx'禁用这个列的索引不被使用
11不带通配符的like语句禁用不带通配符like可能是错误
12不带where的select、update、delete禁用不带where条件存在风险
13严禁负向查询条件(!=、<>、not)禁用 
14in,in操作能避免就避免,避免不了评估in集合元素量,不超过100禁用元素量过多,效率低下
15ORDER BY\GROUP BY order by子句排序方式不同禁用排序方式不同将不会使用索引,要么按asc、要么按desc
16在不同表上使用group by 、order by禁用会使用临时表、文件排序,导致性能问题
17UPDATE/DELETEUPDATE/DELETE使用LIMIT子句禁用使用LIMIT子句,容易导致出现死锁和锁资源争用,还有导致主备数据不一致的风险
18
UPDATE/DELETE禁用update、delete操作必须基于高选择性索引、主键。
19大字段类型大字段类型 tinytext、text、mediumtext、longtext、tinyblob、blob、禁用 
20DDL禁止脚本中drop表、字段类操作禁用 
21INSERT不显示指定列禁用如果表列发生变化,会产生错误
22LIMITlimit子句不带order by 禁用不带order by会导致不确定结果
禁止分页偏移量过大,limit 10000,10禁用效率低下
23其他函数、触发器、存储过程、视图禁用 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值