互联网项目中需要遵守的sql规范有哪些,请简单举例并说明为什么?

suns1113 5月前 ⋅ 79 阅读

包含两个方面 方面一,是从sql性能角度分析,包括增删查改4个方面,包括: ●新增,批量插入用一条sql语句,索引数量要合理,每个索引新增的时候都有性能影响 ●删除,不要直接物理删除,可以逻辑删除(有个is_deleted类似的字段,默认值为0表示正常,类似1表示删除)原因还是索引的回表等操作,物理删除可能导致死锁 ●修改update,采用update table set key1=,key2=某个值 where id=主键的格式,原因是这样只用到主键索引,最好key1和key2都没有索引,避免死锁(普通索引和主键索引是不同的B+树) ●查,分为三种: case1: 与索引无关,直接导致性能出问题的sql,例如:3张表以上的关联查询,存储过程和触发器 case2: 索引失效的问题(索引失效的情况必须说明几个,例如not in或exist等) case3: 索引生效但是limit很大的语句,例如查第10000页的排序数据(具体查看项目亮点)

方面二,是常规方面,包括: ●使用参数化查询可以有效防止SQL注入攻击(例如Mybatis里面的#和$的区别) ●对于经常被查询的列,需要合理地创建索引以提高查询性能 ●尽量避免过度嵌套的SQL语句,因为过度嵌套会使查询难以理解和维护


全部评论: 0

    我有话说: