数据库开发规范-通用版

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

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

不建议使用整表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个。


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

查看所有标签

猜你喜欢:

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

O2O进化论

O2O进化论

板砖大余、姜亚东 / 中信出版社 / 2014-5 / 49

在互联网的1.0时代,Online的商业和Offline的商业就像是两条平行线,没有交汇点,在移动浪潮下,他们正在交汇,这就是O2O(Online to Offline)。于是,人们认为:O2O就是线下将线上作为销售前台。结论是对的,但并非简单相加就可以达到。人们已经进入数据革命时期,O2O是线上和线下全流通的数据化工具,电子商务就是非数据商品的数据化。其次,O2O还是一种竞争格局。这决定了以O2......一起来看看 《O2O进化论》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具