数据库开发规范-通用版

栏目: 数据库 · 发布时间: 7年前

尽量不使用数据库自带的函数,把逻辑实现在应用程序里。

不建议使用整表count。

WHERE条件中参数与参数值使用的类型应当匹配,避免 MySQL 进行隐式类型转化;

建议在SELECT语句中只获取实际需要的字段;

SELECT、INSERT语句应显式的指明字段名称,不使用SELECT *,不使用INSERT INTO table();

执行模糊查询时,%只能出现在关键字的尾部,例如LIKE ‘jun%’,特殊情况需要单独说明;

不建议在WHERE条件中使用非等值条件(<>),建议改造为in或not exists;

执行批量INSERT插入,建议使用batch提交;

避免单条大SQL,应在写法等价的情况下拆解成多条小SQL,以充分利用多核CPU的处理能力;

禁止在mysql中使用几个大表进行JOIN,且JOIN的时候又没有where过滤掉大量数据;

禁止通过order by rand()方式获利返回数据(除非该表记录量不超过10W行),对于需要随机返回一批数据的情况,可以通过基于主键查询,使主键值大于或小于某个随机生成数值的方式;

控制 sql 的in列表值小于50个。

where语句中必须使用合适的数据类型,避免mysql进行隐式类型转换。

禁止使用select  *,select只获取需要的字段。

insert必须显示指明字段名称,如:不能使用insert into table values();必须使用insert into addressbook(fname,lname,phone,fax,email) values('Rob',Rabbit,'674 1536','382 8364','rob@somedomain');这种方式。

避免使用不等于条件,where条件中的不等于不能使用索引。

合理使用分页提高分页效率,避免使用大的偏移量分页,如select id from user  limit 1000,10;

统计表中记录使用count(*),不适用count(primary_key)和count(1)。

禁止oa提交的任何sql脚本包含drop语句,如果上线确实需要drop表,请找dba单独说明。

所有生产环境的sql都需要提oa申请,然后再执行。

线上统计性质sql,left join表数量不能超过3个。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Collective Intelligence实战

Collective Intelligence实战

阿拉克 / 2010-9 / 58.00元

《Collective Intelligence实战》内容简介:在互联网上,利用用户的集体智慧是成功的关键。集体智慧是一种新兴的编程技术,可让您从人们访问web和与web交互的过程中找到有价值的模式、发现这些访问者之间的关系和确定他们的个人偏好及习惯等。《collective Intelligence实战》首先介绍了集体智慧的原则和构建更具交互性网站的思想,然后通过示例开发了一个直接可用的基于Ja......一起来看看 《Collective Intelligence实战》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具