数据库开发规范

原创 2018年04月15日 14:35:16
1.建议使用预编译的语句进行数据库操作。
只传递参数,比传递sql语句更高效。
相同语句可以一次解析,多次使用,提高处理效率,还可以防止sql注入。
2.避免数据类型隐式转换。
隐式转换发生在where语句中,当列类型和参数类型不一致的时候就会出现。
隐式转换可能导致索引失效。
举个例子:select name, phone from user where id = '111'
3.合理利用表上已有的索引而非增加索引。
避免使用双%号的查询条件。按照btree树结构,可以右边加%是走索引的。
一个sql只能利用到符合索引中的一列进行范围查询。
使用left join或not exists来优化not in操作。
4.程序链接不同的数据库使用不同的账号,禁止跨库查询。
为数据迁移和分表分库留出余地。
降低业务耦合度。
避免权限过大而产生的安全问题。
5.禁止使用不含字段列表的insert语句。
insert into t_values('a','b','c');
insert into t(c1,c2,c3) values('a','b','c');
可以防止表结构变更带来的影响。
6.禁止使用子查询。把子查询优化为Join操作。
子查询返回的结果集无法使用索引。
通常存在一张临时表中。数据量越大越影响性能。
消耗过多的CPU以及IO资源。
7.避免使用JOIN关联太多的表。
每join一个表会多占用一部分内存(join_buffer_size);join表越多可能会产生内存溢出现象。 

关联操作会产生临时表,影响性能。

        mysql最多允许61张表联查,但是建议不超过5个表联查

8.减少同数据库的交互次数。

   (1)数据库更适合批量操作。数据库返回一条数据和多条数据在内部实现基本上是相同的。

   (2)合并多个相同的操作到一起,可以提高处理效率。

9.使用in代替or。in可以更有效的利用索引,or利用的少。in个数不超过500个。

10.禁止使用order by rand()进行随机排序。

11.禁止在where从句中进行函数转换和计算。

 对列进行函数转换或计算会导致无法走索引。

12.在明显不会由重复值的情况下使用union all而非union。

union会把所有数据放到临时表中然后去重。

union all不会去重。

13.拆分复杂的大sql为多个小sql。

mysql一个sql只能使用一个cpu进行查询。若一个sql执行时间太长,那么查询性能就会下降。

在多核cpu年代我们可以通过并行处理将多个大SQL拆分为多个子SQL,提高查询效率。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014172271/article/details/79949149

某行MySQL数据库开发规范

  • 2017年07月24日 19:20
  • 925KB
  • 下载

数据库开发规范(SQL_SERVER篇)2012最新版

  • 2016年01月14日 08:34
  • 563KB
  • 下载

数据库设计和SQL编写规范

数据库设计和SQL编写规范,简单实用,有实际例示,欢迎指点。
  • cpaqyx
  • cpaqyx
  • 2016-01-07 19:41:44
  • 1886

为公司开发定的数据库规范

我们公司相当多的项目用的是mysql数据库,但是大家在开发过程中对mysql的认识问题,往往在数据库设计时对字段的定义不一致,在开发时对sql语句的执行出现问题,特地把一些通用性的、值得注意的问题做一...
  • verifocus
  • verifocus
  • 2018-03-01 14:17:49
  • 46

JEECG 命名规范

举例讲解代码规范 例如:表名 :jeecg_sys_demo 第一部分:代码文件命名规则如下: 首先:表名采用驼峰写法转换为Java代码使用单词  jeecg_sys_demo ...
  • zhangdaiscott
  • zhangdaiscott
  • 2013-07-21 15:54:52
  • 2169

去哪儿MySQL开发规范

1.命名规范 (1)库名、表名、字段名必须使用小写字母,并采用下划线分割。 (2)库名、表名、字段名禁止超过32个字符。 (3)库名、表名、字段名必须见名知意。命名与业务、产品线等相...
  • oooyooo
  • oooyooo
  • 2015-10-19 20:34:08
  • 823

阿里Android开发规范:文件与数据库

以下内容摘自 阿里巴巴Android开发手册 我们的目标是: 防患未然,提升质量意识,降低故障率和维护成本; 标准统一,提升协作效率; 追求卓越的工匠精神,打磨精品代码。 【强制】必须遵守,违反...
  • leeyhCoding
  • leeyhCoding
  • 2018-03-01 17:32:49
  • 122

阿里的Mysql规范 MySQL库表设计规范

阿里的Mysql规范 MySQL库表设计规范 表设计 1)     表必须定义主键,默认为ID,整型自增,如果不采用默认设计必须咨询DBA进行设计评估 2)    ID字段作为自增主键...
  • u012966918
  • u012966918
  • 2016-08-09 11:59:40
  • 5091

Java项目开发规范参考

iB2Team项目开发规范 By KevinLee 2016-4-20 Email: hi@lidengju.com 小弟不才,仅供参考 1. 目的为了使软件开发过程顺畅,保证软件...
  • u011383131
  • u011383131
  • 2016-04-23 19:40:49
  • 8002

IOS APP软件多国语言切换,国际化app

转自:http://www.lanrenios.com/tutorials/advanced/2013/0406/1033.html
  • gaocuom
  • gaocuom
  • 2014-10-09 15:28:09
  • 558
收藏助手
不良信息举报
您举报文章:数据库开发规范
举报原因:
原因补充:

(最多只允许输入30个字)