`

各种数据库性能比较(初步)

阅读更多

// 最近稍微有点时间 测试下nosql(reids,mongdb)和mysql性能问题

// 现在用的最普遍的redis非关系型数据库

// 循环十万次和一百万次消耗时间(最简单的数据插入):

 $redis=new Redis();

 $redis->connect('127.0.0.1',6379); // 本机IP等(先安装redis服务及dll拓展)

 $redis->auth('123456'); // 密码

 

 $StartTime = microtime(true);  

 for($i=1;$i<= 1000001;$i++){

    $redis->set($i,$i);

 }

 $StopTime = microtime(true);  

 $TimeSpent=$StopTime-$StartTime;

 echo number_format($TimeSpent*1000, 4).'毫秒';  

 // 十万次 100001  8,050.7162毫秒

 // 一百万次 1000001  78,719.3971毫秒



 

// mysql批量插入的效率如下:

$link = mysql_connect('127.0.0.1','root',''); 

if (!$link) { 

die('Could not connect to MySQL: ' . mysql_error()); 

}

mysql_select_db('test');

 

$StartTime = microtime(true);  

 

$str = '';

for($i=1;$i<=100000;$i++){

$str .= '('.$i.'),';

}

$sql1 ="insert into test(val) values".$str;

$sql2 = rtrim($sql1, ",").';';  // 拼接sql字符串太长可能不太好

mysql_query($sql2,$link); 

 

/*

for($i=1;$i<=1000000;$i++){

$sql1 ="insert into test(val) values($i)";

mysql_query($sql1,$link); 

}*/

$StopTime = microtime(true);

 

$TimeSpent=$StopTime-$StartTime;

echo number_format($TimeSpent*1000, 4).'毫秒';  

exit;

// sql值拼接的情况下

// 100000 => 1,960.1121毫秒/1,662.9341毫秒

// 10000000 => Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 98888926 bytes) in D:\wamp_php\wamp\www\testmysql.php on line 14

// 5000000 => Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 48888924 bytes) in D:\wamp_php\wamp\www\testmysql.php on line 15

// 3000000 => Warning: Error while sending QUERY packet. PID=2928 in D:\wamp_php\wamp\www\testmysql.php on line 16

// 1000000 => 

//Warning: mysql_query(): MySQL server has gone away in D:\wamp_php\wamp\www\testmysql.php on line 16

//Warning: mysql_query(): Error reading result set's header in D:\wamp_php\wamp\www\testmysql.php on line 16

 

// 循环

// 1000000 实际插入表 1627条 耗时122秒03毫秒

由此可见:mysql大数据量的插入数据拼接形式的效率远大于循环插入的效率,不过我自己的笔记本可能配置久和低,实际在服务器的效率应该会高很多的。

 

 mongdb批量插入效率:在3月份的时候在公司电脑用mongdb插入1000万条记录(含ID,name,age三个字段),用时43分钟不到一小时,这个效率应该和redis相差不大;

 

总结:非关系型数据库效率要比关系型数据库效率 高很多。。。

  • 大小: 14.5 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    数据库性能问题定位

    数据库性能问题是许多IT系统面临的常见挑战,特别是在大数据量和高并发环境下。性能问题可能导致系统响应时间变慢,用户体验下降,甚至可能影响业务的正常运行。本文将深入探讨如何有效地定位数据库性能问题,以便...

    基于TPCH基准的内存数据库性能测试方案研究.pdf

    "基于TPCH基准的内存数据库性能测试方案研究" 本文主要研究TPC-H基准测试方案在内存数据库性能测试中的应用和改进。TPC-H基准测试主要用于大数据量的复杂查询,但是在内存数据库性能测试中发现其测试效果不理想。...

    MySQL数据库性能优化分析.pdf

    "MySQL数据库性能优化分析" MySQL数据库性能优化分析是数据库优化的重要环节,对于提高数据库的运行效率和工作能力具有重要的意义。本文将从数据库运行语句、数据库索引以及构造设计等层面对MySQL数据库进行深入的...

    不让临时表空间影响ORACLE数据库性能

    - 文件"不要让临时表空间影响数据库性能 - Oracle - 1.mht"可能包含对临时表空间性能问题的初步分析和解决建议。 - 文件"不要让临时表空间影响数据库性能 - Oracle - 2.mht"可能详细讨论了临时表空间对数据库性能...

    海光X86和鲲鹏ARM平台数据库性能分析.docx

    ### 海光X86与鲲鹏ARM平台数据库性能分析 #### 一、引言 随着信息技术的发展,数据库系统作为信息系统的重要组成部分,在企业信息化建设中扮演着至关重要的角色。为了更好地适应不同应用场景的需求,市场上出现了...

    数据库应用系统的初步开发(实验报告)

    数据库应用系统的初步开发是一个将理论知识与实践相结合的过程,它涉及到多个关键领域,包括数据库设计、用户界面构建以及数据管理。在这个实验报告中,我们将深入探讨如何使用VC(Visual C++)作为开发工具来创建一...

    常见问题:如何使用Oracle AWR报告来诊断数据库性能问题

    最后,文档还强调了主动避免问题及诊断信息收集的最佳实践,包括通过常规监控、分析和优化数据库性能来主动避免问题,以及在问题发生时能够收集准确的问题信息,以便进行后续的问题分析和解决。这些最佳实践不仅能够...

    BOSS数据库系统性能瓶颈分析和定位.pdf

    《BOSS数据库系统性能瓶颈分析和定位》 BOSS数据库系统在月结销账工作中扮演着至关重要的角色,需要在限定时间内处理全省2000多万用户的账单费用计算。然而,近期系统出现了性能下降的问题,原本2到3小时的运行时间...

    MySQL数据库:数据库实施运行和维护.pptx

    3. **性能监控与优化**:数据库管理员需要监控数据库的性能,分析查询效率,找出瓶颈并采取相应的调整措施,如索引优化、查询改写等,以提升系统的响应速度和吞吐量。 4. **数据库的重组织与重构造**:随着业务的...

    初步认识MySQL数据库

    【MySQL数据库基础】 MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),由MySQL AB公司创建,现归Oracle公司所有。它的设计目标是提供高效、可靠且易于管理的数据存储解决方案。MySQL以其简单易用、高性能...

    数据库编程初步学习教案.ppt

    数据库编程初步学习主要涵盖以下几个核心知识点: 1. **数据库编程基础**:这涉及到对数据库服务的理解,特别是如何通过编程与数据库交互。学习者需要理解数据库的基本结构、数据模型(如关系型数据库)以及数据库...

    oracle数据库入门教程

    在安装过程中,理解不同选项的含义和选择的重要性是至关重要的,因为这会直接影响到后续的数据库性能和管理。 接下来,我们进入数据库服务的管理入门。在Oracle数据库中,服务(Service)是连接客户端与数据库实例...

    数据库系统基础讲义(战德臣)

    9. **数据库设计过程**:第13讲讨论了数据库设计的完整流程,从需求分析到逻辑设计,再到物理设计,强调了数据完整性和数据库性能的重要性。 这些讲义内容全面且深入,适合对数据库感兴趣的初学者或希望巩固数据库...

    数据库ppt.zip

    “数据库系统基础讲义第17讲数据库物理存储.pdf”将介绍数据库的存储结构,包括数据页、索引、缓冲池等,以及如何通过存储过程和触发器优化数据库性能。 “数据库系统基础讲义第18讲数据库索引技术.pdf”可能是关键...

    数据库设计--软件工程与数据库设计

    在可行性研究阶段,数据库设计的初步概念可能已经开始形成。这个阶段主要是评估技术、经济和市场等因素,以判断软件项目是否值得开发。在需求分析阶段,数据库设计的依据逐渐明确,因为需要确定软件系统所需的功能、...

    Oracle数据库学习指南

    21.监控数据库性能的SQL 22.简单实现数据库表空间的备份或迁移 23.简析REDO LOGFILE 24.理解和使用Oracle 8i分析工具-LogMiner 25.哪些初始化参数最影响Oracle系统性能 26.你的SQL语句在什么情况下使用...

    MySQL数据库MySQL数据库.ppt

    总的来说,MySQL数据库提供了一种强大且灵活的方式来存储和管理数据,它的易用性和高性能使其成为许多企业和开发者的首选。通过掌握SQL语言和MySQL的基础操作,开发者可以构建高效、稳定的数据驱动应用程序。

Global site tag (gtag.js) - Google Analytics