出乎预料:开发人员是如何使用数据库的?

结合最近JetBrains公司(就是出品IntelliJ IDEA的)的一份调查报告,我们来看看开发人员是如何使用数据库的。

这份调查报告的名字就是:今天开发人员是如何使用数据库的 - HOW DEVELOPERS USE DATABASES TODAY

JetBrains 说他们在考虑出品一个数据库和SQL的开发工具,因此开展了一个调研,收集到大约2000份反馈问卷,得出了很有趣的一些答案。

1.有700万人从事SQL开发

首先是评估开发人员的群体,根据Evans的分析数据,据说全球有1900万的开发人员,而StackOverflow上的投票结果,36%的开发人员最近有和SQL打交道,也就是约700万人在和SQL交互。

2.开发语言选择

典型的,开发语言和数据库SQL开发关系密切,以下是开发语言的选择,数据显示:JavaScript (51%), Java/Scala (50%), PHP (30%), C# (28%), Python (23%) and Ruby (4%)。可以看出,在开发群体中,Java仍然是最为重要的开发语言。

3.SQL性能关注

在参与调查的2000多人中(大多数是高级),90%受访者表示,他们会直接连接到生产数据库运行查询和报表; 85%的受访者表示他们会直接编写SQL代码。

当被问及谁对性能负责?约90%的开发者声称负责性能,有30%的回复称DBA负责性能。高性能查询仍然是大家关注重点,并且优化仍是实现这一目标的关键手段。

这个调研我感觉和中国的状况相仿,所以SQL审核服务对于用户相当重要,SQL管控和优化路漫漫,需要大家一起努力。

4.数据库的品牌选择

你愿意到哪里去?你又是从哪里来?

以下是两个问题的答案:

你最愿意迁移到哪个数据库上去,在758个回答中,20%的人想去PG,去Oracle数据库的大约是7%;

你希望从哪里逃出去,在1428个回答中,65%的人想逃离MySQL,Oracle的用户是最忠诚,最不想离开的。

5.核心关注点

接近65%的受访者将最关心的数据库问题投给了性能,无论何时,性能仍然是大家最实在的体验和关注点。

6.数据库功能采用

那么大家又是如何依赖数据去实现业务逻辑呢?

有50%的受访者承认他们使用触发器来处理事件,并保持数据完整性,45%受访者还使用用户自定义的函数。

存储过程仍然被广泛使用,近70%的用户使用其实现功能,而对于企业级数据库如Oracle或SQL Server的使用者,使用存储的过程的的用户比例更是达到77%,甚至更高,触发器在这部分用户中也高达60%的占比。

所以并不奇怪,30%的团队说明他们都拥有专门的数据库管理员。

这份报告得出的关键结论如下:

  1. 与关系数据库和SQL相关的工作不但没有减少,而且随着全球开发者社区的发展自然扩大;
  2. 开发人员不断编写SQL代码,浏览数据,运行查询,并且持续关注性能。很多业务逻辑仍然驻留在数据库中:存储过程和触发器继续被大量使用;
  3. 数据库软件并未停滞不前:令人印象深刻的PostgreSQL取得快速发展,成为竞争的主要参与者;NoSQL数据库肯定占据自己的位置,但并没有对关系型数据库产生重要影响;这让我们相信SQL仍将是处理数据的坚实可靠的工具;
  4. 在走向云的过程中,亚马逊目前是厂商之中的绝对领导者,尽管如此,云的未来仍有很长的路要走;参与大数据开发人员的数量甚至比我们期望看到更高。似乎越来越多的人停止谈论大数据,并开始行动 - 这是很好的;

报告来自于JetBrains,其中的数据和观点供参考:

https://www.jetbrains.com/datagrip/how-developers-use-databases-today/

我们也来个小投票吧:

近期文章

删繁就简-云和恩墨的一道面试题解析

用SQL解一道数学题:Gauss和Poincare

新年贺礼:云和恩墨大讲堂期刊发行

2015 Oracle 十大热门文章精选

Oracle 12c ASM 防火防盗新特性揭秘

DBA入门之路:学习与进阶之经验谈

DBA入门之路:关于日常工作的建议

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2016-02-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2750
来自专栏阿炬.NET

c# datetime 格式化

2856
来自专栏Pulsar-V

C#下各种获取时间的姿势

直接贴代码吧 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21...

3236
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1171
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1241
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2318
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

2005
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1873
来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2369
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

962

扫码关注云+社区