我的编程空间,编程开发者的网络收藏夹
学习永远不晚

若干数据库数据插入性能的区别有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

若干数据库数据插入性能的区别有哪些

这篇文章主要介绍“若干数据库数据插入性能的区别有哪些”,在日常操作中,相信很多人在若干数据库数据插入性能的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”若干数据库数据插入性能的区别有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

测试环境如下:
服务器:本机(笔记本,I3 370,8G内存)
操作系统:windows 7 x64
语言环境:C#,使用控制台程序测试。
虚拟机:安装SqlServer2008,2CPU,3G内存。
数据库:Oracle11g(本机数据库)
SQLite(本机文件)
MySql(版本5的绿色版)
SqlServer(不想在本机安装2008版本,本来想使用本机的学习版,但死活不行,只好在本机虚拟机上安装一个2008版本,测试性能有所下降,但也只好如此了)
Access(2003版)
Access(2007版)
测试方法:先生成10000条记录(每条记录6个字段),插入数据前先清除原有数据;
数据插入分为事务性写入(启动事务,逐条插入后提交)及非事务性写入(不启动事务,逐条插入)。
SqlServer数据库在本地虚拟机的数据库中,数据不太准确;为消除网络操作影响,将代码移到虚拟中直接执行一次。

测试过程中发现了若干有趣的问题:
1.64位操作系统下,Access无法在编译为AnyCpu的程序下执行,必须编译为x86方可正常操作。(如果是网站,必须将池设置为启用32位兼容)
2.SQLite有64位版本的DLL,可以正常在64位环境(控制台程序)下运行;但很奇怪的是,如果是网站,则使用64位DLL反而无法正常运行,必须使用32位版本的DLL,并且将IIS的池设置为启用32位兼容才可正常运行。
3.Access的2003版本与2007版本的数据库连接串是不相同的,如下:
2003:@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\xxx\test.mdb";
2007:@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\xxx\test.accdb";
测试结果如下:

数据库类别插入数量本地事务(毫秒)本地无事务(毫秒)说明
每条记录耗时每秒插入条数每条记录耗时每秒插入条数
Oracle100000.2343000.91103本地数据库
Sqlite100000.0998100166.86146本地数据库
MySql100000.257438844.132241本地数据库
Sql Server100000.4223801.52654远程数据库
Sql Server100000.41324181.433697本地数据库,2CPU,2G内存
代码直接在虚拟机运行
Access2003100000.6166446.8721.33本地数据库
Access2007100000.73136947.5721.02本地数据库

结果很有意思:
1.SQLite的事务插入速度最快,达到10000条每秒,但非事务性的插入速度就一般了。
2.Oracle作为数据库的老大,事务插入速度仅次于SQLite,但非事务性的插入速度居首。
3.可怜Access,不试不知道,一试吓一跳,事务插入最慢,非事务插入更慢;本来对Access2007还有点期待的,没想到它比2003版本的数据还差。
4.mySql还真是不赖,事务插入的性能仅次于Oracle,非事务性的插入没有那么强,但也还不错。
从数据来看,发觉一个比较有规律的现象:大型数据库与小型数据库、本地型数据库的区别,不在于事务性插入性能的高低,而在于非事务性插入性能的高低。Oracle最强,每秒达到1000条以上;其次是SqlServer,也有700条每秒;mySql相比之下就差多了,只达到240条每秒左右,这个性能整整差了一个等级;比较意外的是SQLite,非事务性插入性能虽然比mySql差一点,但也相差不大(不是数量级的差别);最糟糕的是Access,非事务数据插入性能惨不忍睹,和SQLite相比,整整差了一个数量级。

由上可见,如果选择本地数据库,SQLite应该是首选。而且在应用中还应该注意,尽可能把数据集中起来进行事务性数据写入,如此可以大大提升该数据库的性能。

到此,关于“若干数据库数据插入性能的区别有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

若干数据库数据插入性能的区别有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

云数据库和本地数据库有哪些区别

云数据库和本地数据库的区别有:1、云数据库计算性能高,本地数据库需要云服务器的云盘规划架构,实现集群版的难度较高;2、云数据库提供白名单、安全组、专有网络隔离、自动主备复制、数据备份、日志备份等功能,安全性高,本地数据库难以实现计算和存储分
2023-02-08

hadoop和数据库的区别有哪些

Hadoop是一个开源的分布式计算框架,主要用于处理大规模数据的存储和分析,而数据库是用于管理和存储结构化数据的软件系统。Hadoop是基于文件系统的存储方式,将数据分散存储在不同的节点上,而数据库则使用表结构存储数据。Hadoop是用于处
hadoop和数据库的区别有哪些
2024-03-14

php和java的数据库有哪些区别

小编给大家分享一下php和java的数据库有哪些区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别:1、php对于不同的数据库采用不同的数据库访问接口,而Java通过JDBC来访问数据库,访问数据库的接口比较统一。2、
2023-06-21

数据库date和datetime的区别有哪些

数据库中的date和datetime是两种存储日期和时间的数据类型。它们的主要区别如下:1. 存储范围:date类型只能存储日期,范围从公元1年1月1日到公元9999年12月31日;而datetime类型可以存储日期和时间,范围从公元100
2023-10-12

pg数据库和mysql的区别有哪些

数据类型支持:PostgreSQL具有更多的数据类型支持,包括数组、JSON、UUID、范围类型等,而MySQL则较少。扩展性:PostgreSQL支持更高级的功能和扩展,如全文搜索、地理信息系统、JSONB数据类型等,而MySQL的功能相
pg数据库和mysql的区别有哪些
2024-04-19

数据库中ADO与RDO有哪些区别

这篇文章主要为大家展示了“数据库中ADO与RDO有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中ADO与RDO有哪些区别”这篇文章吧。ADO:是基于什么封装的,连接时用到哪些.d
2023-06-17

数据库视图和表有哪些区别

数据库视图和表的区别有:1、表是数据库中用于存储数据的物理结构,而视图只是基于表或多个表的查询结果集;2、表是数据的物理存储单元,视图只是提供了查看和操作表数据的规则;3、视图为数据库提供高级的安全机制,表没有安全机制;4、视图是表的抽象;
2023-10-22

关系型数据库和非关系型数据库有哪些区别

关系型数据库和非关系型数据库有哪些区别,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.关系型数据库通过外键关联来建立表与表之间的关系,2.非关系型数据库通常指数据以对象的形式
2023-06-04

详解数据库varchar与char有哪些区别

目录一、CHAR和VARCHAR有哪些区别1、固定长度 & 可变长度2、存储方式3、存储容量 CHAR二、CHAR和VARCHAR在SQL中需要注意的点三、类似的二进制类型:VARBINARYCHAR和VARCHAR是mysql中两种最重要
详解数据库varchar与char有哪些区别
2023-10-28

大数据与人工智能有哪些区别

大数据和人工智能是两个不同的概念。它们之间的区别可以从以下几个方面进行解释:1. 定义和目标:大数据是指处理和分析海量、复杂和多样化的数据,旨在从中提取有价值的信息和洞察。人工智能是一种技术,旨在使机器具备类似于人类的智能和能力。2. 内容
2023-10-12

编程热搜

目录