MySql与MsSql性能对比

合集下载

MySQL和PostgreSQL的对比选择

MySQL和PostgreSQL的对比选择

My Q S L和 P s rS L 的对 比选 择 ot e Q g
刘 鑫
( 阳工程学院 计算机基础教学部 , 阳 10 3 ) 沈 沈 116
摘 要 : Ln x系统 下, 在 iu 通过对 My Q . . -l a与 P s rS L7 2多方面的对比 , 而分析 两者 的优缺 点. S L4 0 2a h p ot e Q . g 从 其结果
以用许 多 方 法 扩 展 , 如 通 过 增 加 新 的数 据引方 法 、 程语 言 等. 外 , 索 过 另 因 为许 可证 的灵 活 , 任何 人都 可 以 以任 何 目的免费 使用 、
修 改 和分 发 P s rS L. ot e Q g
第 7卷第 2期
2011年 4月
沈阳工程学院学报 ( 自然科 学版)
Junl fS e y n stt o n ier g Na rl c n e o ra o h n a gI tue f gn ei ( t a S i c ) ni E n u e
V0 . . 17 NO 2 Ap . 2 1 t 01
关 键 词 : S L;ot e Q 封 装 My Q P s rS L; g
中图分类号 : P 1 T 3l
文献标识码 :B
文章 编号 : 6 3—10 (0 10 0 7 0 17 6 3 2 1 )2— 11— 4
1 My QL和 P sge Q 简 介 S otrS L
My Q S L是 一个 小 型关 系型 数据 库管 理 系统 , 发 开 者是 瑞典 My QLAB 公 司 , 公 司 在 2 0 S 该 0 8年 被 S n u 公 司收 购 ,09年 S n公 司又 被 O al公 司 收 购.目 20 u rce 前 My Q S L广泛 地应 用 在 Itme 上 的 中小 型 网站 中. ne t

数据库管理系统比较MySQLvsOraclevsSQLServer

数据库管理系统比较MySQLvsOraclevsSQLServer

数据库管理系统比较MySQLvsOraclevsSQLServer 数据库管理系统比较:MySQL vs Oracle vs SQL Server引言:数据库管理系统是现代信息技术领域中不可或缺的一环。

随着数据量的急剧增加和数据库应用的广泛应用,选择适合自己需求的数据库管理系统变得至关重要。

在本文中,我们将比较三种常见的数据库管理系统:MySQL、Oracle和SQL Server。

通过对比它们的性能、功能、可扩展性和使用成本,为读者提供一个更好地了解和选择的依据。

一、性能比较在数据库管理系统中,性能是一个至关重要的因素。

下面将对MySQL、Oracle和SQL Server的性能进行比较。

1.1 MySQL性能MySQL是一个轻量级的开源数据库管理系统,以其高性能而闻名。

它采用多线程处理机制和高效的索引算法,能够处理大规模的数据访问和高并发请求。

此外,MySQL还支持垂直和水平扩展,可根据实际需求进行灵活配置和调整。

因此,在对于大多数中小型应用来说,MySQL提供了相对较好的性能。

1.2 Oracle性能Oracle是一个功能强大且成熟的商业数据库管理系统。

它具有出色的性能,并且能够处理大规模的复杂数据模型。

Oracle采用了先进的事务处理机制和高效的查询优化算法,使其在处理高并发访问和复杂查询时具有出色的性能表现。

然而,Oracle的性能和功能也伴随着更高的硬件要求和许可成本。

1.3 SQL Server性能SQL Server是由微软公司开发的关系型数据库管理系统。

它在处理大规模数据时表现出色,并且支持高并发访问和复杂查询。

SQL Server 采用了先进的内存管理和缓存技术,以提高查询速度和响应时间。

此外,SQL Server还具有良好的稳定性和可靠性,适用于中小型企业的应用场景。

综合比较,MySQL适用于中小型应用,对性能要求较高且成本敏感的场景;Oracle适用于大规模企业级应用,对功能和可靠性要求较高的场景;SQL Server适用于中小型企业应用,对性能和稳定性要求较高的场景。

数据库管理系统:PostgreSQL和MySQL的差异

数据库管理系统:PostgreSQL和MySQL的差异

数据库管理系统:PostgreSQL和MySQL的差异PostgreSQL和MySQL是两种常用的关系型数据库管理系统(RDBMS),它们在很多方面都有相似之处,比如都是开源的、可以在多个平台上运行、支持SQL等等。

但是,它们之间也有不同点,这篇文章将简要介绍这些不同点,以便读者可以更好地选择适合自己需求的数据库管理系统。

1.数据类型PostgreSQL和MySQL在数据类型方面有些区别,例如PostgreSQL 支持数组类型、范围类型和JSON类型,而MySQL不支持。

此外,PostgreSQL还支持网络地址和CIDR类型,以及各种几何数据类型,而MySQL则不支持这些类型。

这些不同可能对于需要使用这些数据类型的应用程序有影响。

2.存储引擎MySQL具有多种存储引擎,其中包括InnoDB、MyISAM等。

InnoDB 是MySQL的默认存储引擎,它支持事务和外键。

而MyISAM不支持事务和外键,但比较适合于只读的应用程序。

PostgreSQL则只有一个存储引擎,即MVCC。

MVCC是多版本并发控制的缩写,它是PostgreSQL实现隔离级别的方式。

它允许多个用户同时访问数据库,每个用户看到的数据都是根据他们所在的事务版本而定的。

这些版本是通过创建快照来实现的,这个快照包括所有已提交的数据。

MVCC的优点是可以确保并发访问的同时,还能提供高可靠性和数据完整性,但是,它的缺点是需要更多的存储空间来存储快照,因此可能导致性能下降。

3.复杂操作PostgreSQL在处理复杂操作和大型数据集时更为出色。

例如PostgreSQL支持CTE(公共表表达式)和窗口函数,这些函数可以让用户更轻松地进行复杂的分析操作。

此外,PostgreSQL还支持全文搜索,这使得用户可以更轻松地搜索包含关键字的文本。

MySQL则在处理事务时更为出色。

MySQL支持更严格的事务隔离级别,因此在多个用户执行写操作时,MySQL可以保证数据的一致性和完整性。

MySQL和其他数据库的对比及选择指南

MySQL和其他数据库的对比及选择指南

MySQL和其他数据库的对比及选择指南引言:在当今信息化时代,数据已经成为企业和组织中最重要的资产之一。

数据库技术的发展和应用已经成为大数据时代的关键驱动力之一。

在众多数据库中,MySQL以其开源、免费、易用等特点受到了广泛的青睐。

然而,随着技术的不断进步和需求的增长,其他数据库也不断崭露头角。

本文将比较MySQL和其他数据库,旨在帮助读者在众多选择中做出明智的决策。

一、性能对比性能是评估数据库的一个重要指标,直接关系着系统的效率和响应速度。

下面我们将MySQL与其他数据库进行性能对比。

1. MySQL vs. OracleOracle数据库是关系数据库的代表,它具有较高的性能和可靠性。

然而,Oracle的高昂的许可费用使其在中小型企业中的应用受到了限制,相比之下,MySQL是一个开源数据库,免费并且易于安装和维护。

针对小规模项目,MySQL 的性能已经完全能够满足需求。

2. MySQL vs. MongoDBMongoDB是一种面向文档的数据库,它以其高性能和水平扩展能力而闻名。

与MySQL相比,MongoDB具有更好的读取和写入性能,尤其适用于处理大量非结构化数据。

然而,MySQL在事务处理和数据一致性方面表现更加出色。

综上所述,根据具体的需求,选择合适的数据库是至关重要的。

如果注重可靠性和事务处理,可以选择MySQL或Oracle;如果注重大数据和高性能,可以选择MongoDB。

二、功能对比数据库的功能也是衡量其优劣的重要标准之一。

不同的数据库在功能方面存在一些差异,下面我们将来比较MySQL和其他数据库的功能。

1. MySQL vs. PostgreSQLPostgreSQL是另一种常见的开源关系型数据库,与MySQL相比,PostgreSQL 在功能方面更加强大。

例如,PostgreSQL支持更多的数据类型、索引和查询优化器,并且具有更好的事务支持和并发控制能力。

2. MySQL vs. Amazon AuroraAmazon Aurora是亚马逊推出的一种兼容MySQL和PostgreSQL的云数据库服务。

mysql2000和sql2000的区别

mysql2000和sql2000的区别

1.根本地区别是它们遵循地基本原则二者所遵循地基本原则是它们地主要区别:开放vs保守.sql服务器地狭隘地,保守地存储引擎与mysql服务器地可扩展,开放地存储引擎绝然不同.虽然你可以使用sql服务器地sybase引擎,但mysql能够提供更多种地选择,如myisam,heap,innodb,and berkeley db.mysql不完全支持陌生地关键词,所以它比sql服务器要少一些相关地数据库.同时,mysql 也缺乏一些存储程序地功能,比如myisam引擎联支持交换功能.2.性能:先进地mysql纯粹就性能而言,mysql是相当出色地,因为它包含一个缺省桌面格式myisam.myisam 数据库与磁盘非常地兼容而不占用过多地cpu和内存.mysql可以运行于windows系统而不会发生冲突,在unix或类似unix系统上运行则更好.你还可以通过使用64位处理器来获取额外地一些性能.因为mysql在内部里很多时候都使用64位地整数处理.yahoo!商业网站就使用mysql作为后台数据库.当提及软件地性能,sql服务器地稳定性要比它地竞争对手强很多.但是,这些特性也要付出代价地.比如,必须增加额外复杂操作,磁盘存储,内存损耗等等.如果你地硬件和软件不能充分支持sql服务器,我建议你最好选择其他如dbms数据库,因为这样你会的到更好地结果.3.发行费用:mysql不全是免费,但很便宜当提及发行地费用,这两个产品采用两种绝然不同地决策.对于sql服务器,获取一个免费地开发费用最常地方式是购买微软地office或者visual studio地费用.但是,如果你想用于商业产品地开发,你必须还要购买sql server standard edition.学校或非赢利地企业可以不考虑这一附加地费用.4.安全功能mysql有一个用于改变数据地二进制日志.因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上.即使服务器崩溃,这一二进制日志也会保持完整,而且复制地部分也不会受到损坏.在sql服务器中,你也可以记录sql地有关查询,但这需要付出很高地代价.安全性这两个产品都有自己完整地安全机制.只要你遵循这些安全机制,一般程序都不会出现什么问题.这两者都使用缺省地ip端口,但是有时候很不幸,这些ip也会被一些黑客闯入.当然,你也可以自己设置这些ip端口.恢复性:先进地sql服务器恢复性也是mysql地一个特点,这主要表现在myisam配置中.这种方式有它固有地缺欠,如果你不慎损坏数据库,结果可能会导致所有地数据丢失.然而,对于sql服务器而言就表现的很稳键.sql服务器能够时刻监测数据交换点并能够把数据库损坏地过程保存下来.更多信息请查看IT技术专栏。

MySQL和Postgresql的区别

MySQL和Postgresql的区别

MySQL和Postgresql的区别⼀.PostgreSQL相对于MySQL的优势1、在SQL的标准实现上要⽐MySQL完善,⽽且功能实现⽐较严谨;2、存储过程的功能⽀持要⽐MySQL好,具备本地缓存执⾏计划的能⼒;3、对表连接⽀持较完整,优化器的功能较完整,⽀持的索引类型很多,复杂查询能⼒较强;4、PG主表采⽤堆表存放,MySQL采⽤索引组织表,能够⽀持⽐MySQL更⼤的数据量。

5、PG的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的⼀致性更加可靠,复制性能更⾼,对主机性能的影响也更⼩。

6、MySQL的存储引擎插件化机制,存在锁机制复杂影响并发的问题,⽽PG不存在。

⼆、MySQL相对于PG的优势:1、innodb的基于回滚段实现的MVCC机制,相对PG新⽼数据⼀起存放的基于XID的MVCC机制,是占优的。

新⽼数据⼀起存放,需要定时触发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能⼒下降。

⽽且VACUUM清理不及时,还可能会引发数据膨胀;2、MySQL采⽤索引组织表,这种存储⽅式⾮常适合基于主键匹配的查询、删改操作,但是对表结构设计存在约束;3、MySQL的优化器较简单,系统表、运算符、数据类型的实现都很精简,⾮常适合简单的查询操作;4、MySQL分区表的实现要优于PG的基于继承表的分区实现,主要体现在分区个数达到上千上万后的处理性能差异较⼤。

5、MySQL的存储引擎插件化机制,使得它的应⽤场景更加⼴泛,⽐如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。

三、总体上来说,开源数据库都不是很完善,商业数据库oracle在架构和功能⽅⾯都还是完善很多的。

从应⽤场景来说,PG更加适合严格的企业应⽤场景(⽐如⾦融、电信、ERP、CRM),⽽MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联⽹场景(⽐如google、facebook、alibaba)。

mysql和sqlserver中的text数据类型

mysql和sqlserver中的text数据类型

mysql和sqlserver中的text数据类型MySQL和SQL Server是两种常用的关系型数据库管理系统(RDBMS),它们在数据类型的定义上有一些异同。

其中一个相似之处就是它们都提供了TEXT数据类型用于存储长文本或大型数据。

1. MySQL的TEXT数据类型:在MySQL中,TEXT数据类型是用来存储变长文本数据的列类型。

它支持存储最大长度为65,535(2^16-1)个字符的文本数据。

MySQL 中的TEXT类型又分为四个子类型,包括TINYTEXT、TEXT、MEDIUMTEXT 和LONGTEXT。

- TINYTEXT:最大长度为255个字符(2^8-1),占用1字节前缀长度。

适用于较短的文本内容存储,例如描述、备注等。

- TEXT:最大长度为65,535个字符(2^16-1),占用2字节前缀长度。

适用于比较长的文本内容存储,例如文章内容等。

- MEDIUMTEXT:最大长度为16,777,215个字符(2^24-1),占用3字节前缀长度。

适用于较长的文本内容存储,例如博客、论坛等。

- LONGTEXT:最大长度为4,294,967,295个字符(2^32-1),占用4字节前缀长度。

适用于非常长的文本内容存储,例如演讲稿、小说等。

2. SQL Server的TEXT数据类型:在SQL Server中,TEXT数据类型也是用来存储长文本数据的列类型。

它支持存储最大长度为2^30-1(1,073,741,823)个字符的文本数据。

SQL Server中的TEXT类型也有类似的子类型,包括TEXT、NTEXT 和IMAGE。

- TEXT:用于存储非Unicode字符的文本数据,最大长度为2^30-1个字符。

适用于存储较长的非Unicode文本数据。

- NTEXT:用于存储Unicode字符的文本数据,最大长度为2^30-1个字符。

适用于存储较长的Unicode文本数据。

- IMAGE:用于存储二进制数据,最大长度为2^30-1个字节。

mysql和postgresql性能对比测试

mysql和postgresql性能对比测试

SQL OperationMySQL 5.0.51MySQL 5.1.30with InnoDB 1.0.3PostgreSQLsecondssecondssecondssel_1_cl()00.020.04join_3_cl()0.060.050.02sel_100_ncl()0.010.010.03table_scan()10.54 4.130.64oin_2()1.78 1.620.89sel_variable_select_low()0.030.020sel_variable_select_high()12.527.8249.51oin_4_cl()000proj_100()7.137.35149.97join_4_ncl()0.0300proj_10pct()9.132.6820.06table_scan()select * from uniques where col_int = 1sel_1_cl()select col_key, col_int, col_signed, col_code, col_double, col_name from updates where col_key = 1000sel_1_ncl()select col_key, col_int, col_signed, col_code, col_double, col_name from updates where col_code = ‘BENCHMARKS’sel_100_cl()select col_key, col_int, col_signed, col_code, col_double, col_name from updates where col_key <= 100sel_100_ncl()select col_key, col_int, col_signed, col_code, col_double, col_name from updates where col_int <= 100sel_variable_select_high()select col_key, col_int, col_signed, col_code, col_double, col_name from tenpct where col_signed <:prog_var;sel_variable_select_low()select col_key, col_int, col_signed, col_code, col_double, col_name from tenpct where col_signed <:prog_var;join_4_cl()select uniques.col_date, hundred.col_date, tenpct.col_date, updates.col_date from uniques, hundred, tenpct, updates whereuniques.col_key = hundred.col_key and uniques.col_key = tenpct.col_key and uniques.col_key = updates.col_key andmysql 和postgresql 性能对⽐测试今天突然想知道mysql 和postgresql 的性能哪个好些搜索看了⼀些⽂章,然后看到⼀篇专业的测试⽂章对⽐测试的环境如下电脑配置Hardware ResourcesCPU: Intel(R) Pentium(R) D CPU 3.00GHz Dual Core RAM: 3G RamHDD: WDC WD3200AAJS-0测试安装的软件Software ResourcesDebian Lenny 5.0 64 bit archLinux painkiller 2.6.26-2-amd64 #1 SMP Wed May 13 15:37:46 UTC 2009 x86_64 GNU/Linux MySQL 5.0.51a-24+lenny1MySQL 5.1.30 Sun compiledInnoDB 1.0.3 Plugin compiled by ORACLE for MySQL 5.1.30PostgreSQL 8.3.72.1 – Opensource Database benchmark.使⽤osdb ⽣成了1024m 的数据来测试The test was made on a 1024MB of data and the multiple users test was made with 100 users simultaneously on the same database.截取⼀部分测试结果⼤家看uniques.col_key = 1000join_4_ncl()select uniques.col_date, hundred.col_date, tenpct.col_date, updates.col_date from uniques, hundred, tenpct, updates whereuniques.col_code = hundred.col_code and uniques.col_code = tenpct.col_code and uniques.col_code = updates.col_code anduniques.col_code = ‘BENCHMARKS’sel_variable_select_high()select col_key, col_int, col_signed, col_code, col_double, col_name from tenpct where col_signed < :prog_var;sel_variable_select_low()select col_key, col_int, col_signed, col_code, col_double, col_name from tenpct where col_signed < :prog_var;sel_1_cl()select col_key, col_int, col_signed, col_code, col_double, col_name from updates where col_key = 1000table_scan()select * from uniques where col_int = 1---------------------------------------------------------------------------------------------------------------------------------------------------------- 在⼀些常规的根据表的键查询MySQL 5.1.30 with InnoDB 1.0.3居然还快过postgresql但是表扫描就要慢了可见mysql 也不是被postgresql ⽐的⼀⽆是处⼤家可以再研究下对⽐结果。

MySql,Oracle三种数据库性能优缺点及异同

MySql,Oracle三种数据库性能优缺点及异同
增强的在线商务
Microsoft SQL Server 2000简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。其中,用以提高可靠性的特性包括日志传送、在线备份和故障切换群集。在伸缩性方面的改进包括对多达32颗CPU和64 GB RAM的支持。通过自动优化和改进后的管理特性--诸如数据文件尺寸的自动管理、基于向导的数据库拷贝、自动内存管理和简化的故障切换群集安装与管理,在线商务应用程序能够被迅速部署并有效管理。
MySql支持ODBC for Windows。MySql支持所有的ODBC 2.5函数和其他许多函数,这样就可以用Access连接MySql服务器,从而使得MySql的应用被大大扩展。
MySql支持大型的数据库。虽然对于用PHP编写的网页来说只要能够存放上百条以上的记录数据就足够了,但MySql可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,MySql可以针对不同的应用进行相应的修改。
如果windowsNT不能满足需要, 用户可以把数据库移到UNIX中。
安全性方面,性能最高。
客户端支持及应用模式 ,多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接式要求,可根据实际系统需求构造数据库。
采用标准的SQL结构化查询语言。
具有丰富的开发工具,覆盖开发周期的各阶段。
支持大型数据库,数据类型支持数字、字符、大至2GB的二进制数据,为数据库的面向对象存储提供数据支持。
具有第四代语言的开发工具(SQL*FORMS、SQL*REPORTS、SQL*MENU等)。
具有字符界面和图形界面,易于开发。
通过SQL*DBA控制用户权限,提供数据保护功能,监控数据库的运行状态,调整数据缓冲区的大小。

SQLServer与MySQL数据库对比

SQLServer与MySQL数据库对比

SQLServer与MySQL数据库对比Microsoft SQL Server 2008作为一个数据库平台在所有重要商业领域都胜过MySQL。

它提供了一个大型的资源网络、行业领先的性能和企业级的可扩展性、最高级的安全性、一个广泛的商业智能平台——以一个较低的总体拥有成本(TCO)提供所有这些。

· 合作伙伴系统· 可扩展性· 安全性· 高有效性· 商业智能· 总体拥有成本(TCO)合作伙伴系统SQL Server以一个大型的资源网络和一个广泛的合作伙伴系统来支持你的业务。

SQL Server是企业的首选数据库,目前有74.7%的企业使用SQL Server。

· Microsoft具有世界上最多的开发人员和支持团队。

MySQL有大约70个开发人员和50个支持人员。

· 大约15,000个ISV支持SQL Server。

而支持MySQL的ISV不到400个。

.· 在全球Microsoft合作计划中数据管理资格认证的大约2,000个解决方案合作商是有能力为你的企业提供支持。

而MySQL 的较小合作商系统只能提供有限的资源。

可扩展性SQL Server支持行业领先的性能和企业级可扩展性。

SQL Server 提供了一个基础构建,它可以与你的企业一起发展,而且它还被证明可以处理大型的工作负载.· 由行业标准基准验证的性能,包括TPC和SAP。

MySQL没有行业标准性能基准。

MySQL性能要求一般是基于可能不适合你企业的配置。

· 一个具有丰富特性、高性能和基于成本的查询优化器改进了复杂查询的效率。

MySQL只有一个基本的查询优化器,而这个优化器没有优化以提供最好的性能,并因此只提供有限的可扩展性。

· 分布式分区视图扩展了可扩展性。

MySQL没有分布式分区视图。

安全性SQL Server 提供了最高级的安全性。

MSSQL、MySQL数据库删除大批量千万级百万级数据的优化

MSSQL、MySQL数据库删除大批量千万级百万级数据的优化

MSSQL、MySQL数据库删除⼤批量千万级百万级数据的优化SQL Server上⾯删除1.6亿条记录,不能⽤Truncate(因为只是删除其中少部分数据)。

经过实验,每次删除400万条要花1.5 - 3⼩时,⽽且是越到后⾯越慢,正常的话,需要⼤约102个⼩时,⼤约4天半时间。

这在⽣产环境下是不能接受的。

经过⼀个处理之后,我每次删除400万条记录花5 - 6分钟,删除全部1.6亿条记录花了4 - 5个⼩时!为什么??每次删除记录,数据库都要相应地更新索引,这是很慢的IO操作,⽽且后⾯索引碎⽚越来越多,就更慢,这就是为什么⼀开始只花1.5⼩时,后⾯要3⼩时才能删除400万条记录的原因。

删除之前,做个完整备份。

我在删除前先保存当前索引的DDL,然后删除其索引,然后根据使⽤的删除条件建⽴⼀个临时的索引(这是提⾼速度的另外⼀个重要原因!)开始删除操作,完成之后再重建之前的索引。

如果需要保留的数据⽐较少的话,可以把要保留的数据备份出来。

在drop表。

重新创建,先不要急着创建索引、主键,把数据导回去,然后在建索引、约束之类的。

记得在删除的时候不要在记录⽇志的模式下⾯,否则⽇志⽂件就要爆了。

2、在My SQL数据库使⽤中,有的表存储数据量⽐较⼤,达到每天三百万条记录左右,此表中建⽴了三个索引,这些索引都是必须的,其他程序要使⽤。

由于要求此表中的数据只保留当天的数据,所以每当在凌晨的某⼀时刻当其他程序处理完其中的数据后要删除该表中昨天以及以前的数据,使⽤delete删除表中的上百万条记录时,MySQL删除速度⾮常缓慢每⼀万条记录需要⼤概4分钟左右,这样删除所有⽆⽤数据要达到⼋个⼩时以上,这是难以接受的。

查询MySQL官⽅⼿册得知删除数据的速度和创建的索引数量是成正⽐的,于是删除掉其中的两个索引后测试,发现此时删除速度相当快,⼀百万条记录在⼀分钟多⼀些,可是这两个索引其他模块在每天⼀次的数据整理中还要使⽤,于是想到了⼀个折中的办法:在删除数据之前删除这两个索引,此时需要三分钟多⼀些,然后删除其中⽆⽤数据,此过程需要不到两分钟,删除完成后重新创建索引,因为此时数据库中的数据相对较少,约三四⼗万条记录(此表中的数据每⼩时会增加约⼗万条),创建索引也⾮常快,约⼗分钟左右。

数据库的监控与性能分析工具

数据库的监控与性能分析工具

数据库的监控与性能分析工具随着数据库的应用越来越广泛,对数据库的监控和性能分析变得越来越重要,因为它可以帮助组织提高数据库的可靠性、稳定性和性能。

在实际操作中,我们需要使用一些专门的工具,以便能够准确地监控和分析数据库的运行情况。

本文将介绍一些常用的数据库监控与性能分析工具,以帮助您更好地管理和优化数据库性能。

1. SQL Server Profiler(MSSQL)SQL Server Profiler是Microsoft SQL Server的一款强大的监控和性能分析工具。

它可以捕获执行SQL语句的详细信息,包括查询语句、执行计划、锁定信息等。

通过分析这些信息,DBA可以找出性能瓶颈,优化查询语句,提高数据库的响应速度和负载能力。

2. MySQL Enterprise Monitor(MySQL)MySQL Enterprise Monitor是Oracle旗下的一款用于监控和分析MySQL数据库的工具。

它具有实时监控、性能分析和警报功能,可以帮助DBA识别潜在的性能问题和故障,并提供相应的解决方案。

此外,MySQL Enterprise Monitor还提供了历史数据存档以及报告和分析功能,有助于DBA对数据库性能的长期评估和优化。

3. Oracle Enterprise Manager(Oracle)Oracle Enterprise Manager是Oracle数据库的官方监控和性能分析工具。

它为DBA提供了全面的监控和管理功能,包括实时性能监测、自动化故障管理、资源管理和报告分析等。

通过Oracle Enterprise Manager,DBA可以迅速识别出数据库的性能瓶颈,并采取相应的措施来解决问题。

4. pgBadger(PostgreSQL)pgBadger是一款用于分析PostgreSQL日志文件的工具。

它可以生成详细的性能分析报告,包括查询统计、磁盘活动、连接统计和错误日志等。

PostgreSQL,mysql,MSSQL,Oracle性能对比

PostgreSQL,mysql,MSSQL,Oracle性能对比

且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发 PostgreSQL , 不管是私用,商用,还是学术研究使用。 MySQL 是一个开放源码的小型关联式数据库管理系统 MS SQL 是指微软的 SQL Server 数据库服务器,它是一个数据库平台,提供数据库的从服 务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、
使用和维护数据库。
Oracle SQL Developer 是一个免费非开源的用以开发数据库应用程序的图形化工具,使用 SQL Developer 可以浏览数据库对象、运行 SQL 语句和脚本、编辑和调试 PL/SQL 语句。 另外还可以创建执行和保存报表。
性能 支持系统
PostgreSQL
MySQL
PostgreSQL,mysql,MsSQL、Oracle 性能报价对比
PostgreSQL 支持大部分 SQL 标准并且提供了许多其他现代特性:复杂查询、
外键、触发器、视图、事务完整性、多版本并发控制。同样,PostgreSQL 可以用许多方法 扩展,比如,通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。并
Windows 下不太 很多
稳定
MsSQL Windows
Oracle 很多
可编写环境
较多
较多
用户普遍性
普遍
流行
较普遍
查询速度
比较慢
较慢
较快
应用灵活性
较灵活
可单独应用,也 灵活
可进行嵌套
查询包含性
较差
较强
负载程度
很低
很高
价格
免费开源
收费
管理简易程度
较容易

国产数据库人大金仓sql与mysql对比

国产数据库人大金仓sql与mysql对比

国产数据库⼈⼤⾦仓sql与mysql对⽐反引号与双引号kingbase不⽀持mysql中的反引号与其相对应的是双引号mysql中的语法:`name`kingbase中的语法:“name”正则表达式kingbase 正则表达式与mysql中的语法不通:mysql 中的语法:`name` regexp ‘^b.’ kingbase中的语法:regexp_like(“name”,’^b.’,‘i’)字符串包裹kingbase 与 mysql 字符串差别 mysql中可以使⽤单引号与双引号包裹字符串 kingbase只能使⽤单引号包裹mysql 中的语法:insert into users(name,context) values(‘name’,“context”)kingbase 中的语法:insert into users(name,context) values(‘name’,‘context’)类型转换:kingbase不⽀持类型的隐式转换不通类型中必须⼿动转换mysql ⽀持类型的隐式转换GROUP_CONCAT:kingbase中与mysql的GROUP_CONCAT 相同的⽅法是 wm_concat ⽤法和参数都⼀样replace into:mysql 中 replace into 是根据唯⼀约束进⾏查找如果有数据删除并且插⼊新数据,没有则直接插⼊数据。

kingbase 中没有 replace into 需要使⽤ merge into 替换。

其语句执⾏结果是:根据输⼊的字段作为条件如果含有则修改,没有则插⼊具体替换件如下sql:merge into “account” a using (select ‘acco0004’ as account_code) b on (a.account_code = b.account_code)when matched then update set “name”= ‘hello world’when not matched then insert (“account_code”,“name”) values (‘acco0004’,‘hello’)解释:1.“account” 为源表名(要被修改数据的表)2.(select ‘acco0004’ as account_code) b 判断重复的虚拟表其中 ‘acco0004’ 为判断依据(根据实际状况替换) account_code 为⾃定义字段名可根据实际状况修改3.on (a.account_code = b.account_code) 过滤条件如果 account 表中含有虚拟表b中 acco0004 的值则进⾏修改操作 account_code 可根据实际状况修改可使⽤and连接多个字段但字段必须有唯⼀约束4.update set “name” = ‘malong’ 如果有则需改这⾥只修改了 name 可根据增加替换5.insert (“account_code”,“name”) values (‘acco0004’,‘bailong’) 如果没有则进⾏插⼊多字段条件:merge into “account” a using (select ‘acco0001’ as account_code,‘keyc0001’ as key_code) b on (a.account_code = b.account_code anda.key_code = b.key_code)when matched then update set “name” = ‘hello world’when not matched then insert (“account_code”,“name”,“key_code”) values (‘acco0001’,‘hello’,‘keyc0001’)insert ignore into:mysql 的 insert ignore into 没有数据则插⼊,有则忽略。

常用数据库对比(一)2024

常用数据库对比(一)2024

常用数据库对比(一)引言概述:数据库是用于存储和管理大量结构化数据的工具,常见的数据库包括MySQL、Oracle、SQL Server等。

本文将对这些常用的数据库进行对比,分析它们在性能、可扩展性、安全性、成本等方面的差异。

正文内容:一、性能比较1.1 数据库类型:关系型数据库和非关系型数据库的性能对比1.2 数据读取速度:不同数据库在读取大量数据时的性能对比1.3 数据写入速度:各个数据库在写入数据时的性能差异1.4 并发处理能力:数据库在同时处理多个请求时的性能比较1.5 响应时间:不同数据库在查询请求下的响应时间对比二、可扩展性对比2.1 横向扩展:各个数据库在分布式系统中可扩展性的对比2.2 纵向扩展:不同数据库在单服务器多核处理器上可扩展性的对比2.3 数据分区:数据库分区技术对可扩展性的影响比较2.4 数据备份和恢复:数据库备份和恢复机制对可扩展性的影响比较2.5 扩展性折衷:各个数据库在可扩展性与性能之间的权衡三、安全性对比3.1 访问控制:各个数据库对用户访问进行的权限控制机制对比3.2 数据加密:数据库对数据进行加密的方式和程度的对比3.3 防止SQL注入:数据库对防止SQL注入攻击的机制对比3.4 审计和日志记录:不同数据库对操作审计和日志记录的支持程度对比3.5 数据完整性保护:数据库对数据完整性进行保护的机制对比四、成本对比4.1 软件许可成本:各个数据库的软件许可费用对比4.2 硬件需求:不同数据库对硬件配置的要求对比4.3 维护成本:数据库的维护、更新和支持所需的成本对比4.4 技术人员培训:不同数据库所需的技术培训成本对比4.5 长期投资回报率:各个数据库的长期投资回报率的估计比较总结:本文对常用的数据库进行了性能、可扩展性、安全性和成本等方面的比较。

根据不同的需求和具体情况,选择合适的数据库可以提高应用系统的效率和性能,降低维护和运营成本。

在后续的文章中,我们将继续对常用数据库进行更深入的对比分析。

常见数据库及其特点

常见数据库及其特点

常见数据库及其特点目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。

面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。

1.MySQL(免费,体积小,速度快,成本低,开源,适用于中小型网站)MySQL是最受欢迎的开源SQL数据库管理系统,它是一个快速的、多线程、多用户和健壮的SQL数据库服务器。

MySQL服务器支持关键任务、重负载生产系统的使用。

MySQL具有以下优势:(1)MySQL是一个关系数据库管理系统。

(2)MySQL是开源的。

(3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。

(4)MySQL服务器工作在客户/服务器或嵌入系统中。

2.SQL Server (流行于Web)SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。

SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web 的和安全的应用程序管理等。

而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱。

3.Oracle(功能齐全,大型,专业,企业级,其开发工具全部用JAVA来写的)目前,Oracle产品覆盖了大、中、小型机等多种机型,Oracle成为世界上使用最广泛的关系数据系统之一。

(1)可联结性 :Oracle能与多种通讯网络相连,支持客户机/服务器方式和各种协议(TCP/IP、DECnet、LU6.2等)。

(2)开放性 :Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。

(3)名符其实的大型数据库:ORACLE建立的数据库,最大数据量可达几百GB;(4)共享SQL和多线索服务器体系结构:这两个特性的结合,减少ORACLE的资源占用,增强处理能力,能支持成百甚至上千个用户。

MySQL与MsSQL的区别

MySQL与MsSQL的区别

MySQL与MsSQL的区别⼚商和操作系统MsSQL是微软的SQL Server只能⽤在Windows操作系统上,MySQL是MySQL AB公司开发⽀持多平台MySQL⽀持的数据量较⼩,适合于⼩中型⽹站MySQL⽐较轻量,重在Windows系统的安装就可以看出来,mysql的⽂件⼤⼩只有⼀百多M,MsSQL更消耗CPU和内存的资源数据类型mysql⽀持enum,和set类型,sql server不⽀持mysql不⽀持nchar,nvarchar,ntext类型它表⽰存储的是Unicode数据类型的字符。

我们知道字符中,英⽂字符只需要⼀个字节存储就⾜够了,但汉字众多,需要两个字节存储,英⽂与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题⽽产⽣的,它所有的字符都⽤两个字节表⽰,即英⽂字符也是⽤两个字节表⽰。

带来⽅便的同时会在存储英⽂的时候造成数量上的损耗如果含有中⽂字符,⽤nchar/nvarchar,如果纯英⽂和数字,⽤char/varchar,在mysql中char,varchar被默认为了nchar,nvarcharmssql⽀持货币数据类型(money、smallmoney),mysql不⽀持money与smallmoney都是保留四位⼩数,只是存储的位数不⼀样mysql的递增语句是AUTO_INCREMENT,⽽mssql是identity(1,1)create table tb(id int identity(1,1) primary key )mysql⽀持⽆符号型的整数,那么⽐不⽀持⽆符号型的mssql就能多出⼀倍的最⼤数存储识别符MySQL的识别符是`MsSQL的识别符是[]SELECT `PASSWORD`FROM login时间MsSQL⽀持getdate()⽅法获取当前时间⽇期SELECT getdate()MySQL⾥⾯可以分⽇期类型和时间类型,获取当前⽇期是cur_date(),当前完整时间是 now()函数SELECT NOW(),CURDATE(),CURTIME()NOW() CURDATE() CURTIME()------------------- ---------- -----------2020-11-1416:59:102020-11-1416:59:10存储引擎mysql在创建表时要为每个表指定⼀个存储引擎类型,⽽mssql只⽀持⼀种存储引擎MySQL⽀持的语句MySQL⽀持replace into语句⾸先尝试插⼊数据到表中,如果发现表中已经有此⾏数据(根据主键或者唯⼀索引判断)则先删除此⾏数据,然后插⼊新的数据。

sqlsugarfreesqlhisql三个ORM框架性能测试对比

sqlsugarfreesqlhisql三个ORM框架性能测试对比

sqlsugarfreesqlhisql三个ORM框架性能测试对⽐hisql与⽬前⽐较流⾏的ORM框架性能测试对⽐测试环境数据库sqlserver 配置如下总体测试结果插⼊记录数hisql(耗时)sqlsugar(耗时)freesql(耗时)5条0.0107秒0.0312秒0.02675秒10条0.0111秒0.0307秒0.0271秒50条0.0174秒0.0364秒0.0430秒100条0.0281秒0.0472秒0.0922秒200条0.0310秒0.0584秒0.2319秒500条0.0712秒0.1127秒0.5996秒1000条0.1112秒0.1871秒0.8145秒10000条 1.0440秒 1.6415秒 5.3671秒100000条10.3279秒15.8685秒46.0261秒分析1. 5条数据时 HiSql⽐SqlSugar快2.91倍⽐freesql快2.5倍,从数据可以看得出在这个数据档位sqlsugar表现是慢的 freesql⽐sqlsugar快14%2. 10条数量测试三个ORM的线性变化值不⼤依然是hisql最快 freesql次之,sqlsugar相对⽐freesql慢⼀点3. 50条数据时 hisql⽐sqlsugar快2.09倍⽐freesql快2.47倍,此时sqlsugar⽐freesql快18%,可以看出freesql在数量增长时他的性能也是呈下滑趋势4. 100条数据时 hisql⽐sqlsugar快1.67倍⽐freesql快3.28倍,sqlsugar⽐freesql快1.95倍,sqlsugar与Hisql差距慢慢在缩⼩,但freesql与其它两个orm框架相⽐差距越来越⼤5. 当数据达到100000条时 hisql依然⽐sqlsugar保持在绝对性的优势从测试结果来看 HiSql的性能测试名列前茅 sqlsugar次之 freesql表现最差git clone https:///tansar/HiSql.gitgit clone https:///tansar/HiSqlTestDemo.git测试源代码using System;using System.Collections.Generic;using System.Diagnostics;using HiSql;using SqlSugar;namespace TestProject{class Program{static void Main(string[] args){//hisql连接请先配置好数据库连接HiSqlClient sqlClient = Demo_Init.GetSqlClient();//hisql需要初始货安装只需要执⾏⼀次sqlClient.CodeFirst.InstallHisql();//freesql连接IFreeSql freeClient = Demo_Init.GetFreeSqlClient();//sqlsugar连接SqlSugarClient sugarClient = Demo_Init.GetSugarClient();int _count = 100000;sqlClient.CodeFirst.CreateTable(typeof(Table.HTest01));Console.WriteLine("初始化hisql专⽤表成功!");sqlClient.CodeFirst.CreateTable(typeof(Table.HTest02));Console.WriteLine("初始化sqlsugar专⽤表成功!");sqlClient.CodeFirst.CreateTable(typeof(Table.HTest03));Console.WriteLine("初始化freesql专⽤表成功!");Console.WriteLine($"测试场景向表中插⼊{_count}条数据,都⽤各个ORM常⽤的插⼊试(不⽤bulkcopy因为这个⽅法是底层库提供的)");Console.WriteLine($"⽤常规数据插⼊最适应⽇常应⽤场景");List<object> lstobj = new List<object>();List<Table.HTest02> lstobj2 = new List<Table.HTest02>();List<Table.HTest03> lstobj3 = new List<Table.HTest03>();Random random = new Random();//插⼊的参数值都随机产⽣以免数据库执⾏相同SQL时会有缓存影响测试结果for (int i = 0; i < _count; i++){//hisql可以⽤实体类也可以⽤匿名类lstobj.Add( new { SID=(i+1), UName=$"hisql{i}",Age=20+( i % 50), Salary=5000+(i%2000)+ random.Next(10), Descript=$"hisql初始创建" });//sqlsugar⽤匿句类报错⽤实体类lstobj2.Add(new Table.HTest02 { SID = (i + 1), UName = $"sqlsugar{i}", Age = 20 + (i % 50), Salary = 5000 + (i % 2000) + random.Next(10), Descript = $"sqlsugar初始创建" }); lstobj3.Add(new Table.HTest03 { SID = (i + 1), UName = $"freesql{i}", Age = 20 + (i % 50), Salary = 5000 + (i % 2000) + random.Next(10), Descript = $"freesql初始创建" });}//删除测试表中的数据sqlClient.TrunCate("HTest01").ExecCommand();sqlClient.TrunCate("HTest02").ExecCommand();sqlClient.TrunCate("HTest03").ExecCommand();Stopwatch sw = new Stopwatch();#region freesqlsw.Reset();Console.WriteLine("------------------------------");Console.WriteLine("----------FreeSql 测试----------");Console.WriteLine($"FreeSql 预热...{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}");var temp3 = freeClient.Queryable<Table.HTest03>().Where(w => w.Age < 0).ToList();Console.WriteLine($"FreeSql 正在插⼊数据\t{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}");sw.Start();freeClient.Insert<Table.HTest03>(lstobj3).ExecuteAffrows();sw.Stop();Console.WriteLine($"FreeSql 数据插⼊{_count}条耗时{sw.Elapsed}秒");sw.Reset();#endregion#region sqlsugarsw.Reset();Console.WriteLine("------------------------------");Console.WriteLine("----------SqlSugar 测试----------");Console.WriteLine($"SqlSugar 预热...{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}");var temp2 = sugarClient.Queryable<Table.HTest02>("HTest02").Where(w => w.Age < 1).ToList();Console.WriteLine($"sqlsugar 正在插⼊数据\t{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}"); sw.Start();sugarClient.Insertable(lstobj2).AS("HTest02").ExecuteCommand();sw.Stop();Console.WriteLine($"sqlsugar 数据插⼊{_count}条耗时{sw.Elapsed}秒");sw.Reset();#endregion#region hisqlsw.Reset();Console.WriteLine("------------------------------");Console.WriteLine("----------HiSql 测试----------");Console.WriteLine($"HiSql 预热...{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}");var temp1 = sqlClient.Query("HTest01").Field("*").Take(1).Skip(1).ToDynamic();Console.WriteLine($"HiSql 正在插⼊数据\t{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}"); sw.Start();sqlClient.Insert("HTest01", lstobj).ExecCommand();sw.Stop();Console.WriteLine($"hisql 数据插⼊{_count}条耗时{sw.Elapsed}秒");sw.Reset();#endregionvar s = Console.ReadLine();}}}hisql sqlsugar freesql 插⼊5条数据测试hisql sqlsugar freesql 插⼊10条数据测试hisql sqlsugar freesql 插⼊50条数据测试hisql sqlsugar freesql 插⼊100条数据测试hisql sqlsugar freesql 插⼊200条数据测试hisql sqlsugar freesql 插⼊500条数据测试hisql sqlsugar freesql 插⼊1000条数据测试hisql sqlsugar freesql 插⼊10000条数据测试hisql sqlsugar freesql 插⼊100000条数据测试后续请关注bulkcopy的性能测试对⽐。

【IT专家】在中sql中,mysql 5.7比mysql 5.6慢得多。

【IT专家】在中sql中,mysql 5.7比mysql 5.6慢得多。

本文由我司收集整编,推荐下载,如有疑问,请与我司联系在中sql 中,mysql 5.7 比mysql 5.6 慢得多。

在中sql 中,mysql 5.7 比mysql 5.6 慢得多。

[英]mysql 5.7 is much slower than mysql 5.6 in medium sql We are upgrading to mysql 5.7 and just discover that it is much slower than its 5.6 counter part. While both have almost identical config, the 5.6 version execute most of the sqls in milliseconds, while the other takes around 1 sec or more for amiddle complex sql like the one below for example.我们升级到mysql 5.7,发现它比5.6 的计数器要慢得多。

虽然这两个版本的配置几乎相同,但5.6 版本的sql 大多数都是在毫秒内执行的,而另一个版本的复杂sql则需要1 秒或更长的时间。

-- Getting most recent users that are email-verified and not banned SELECT `u`.*`user`AS `u`INNER JOIN `user` user_table_alias ON user_table_alias.`id` = `u`.`id`LEFT JOIN `user_suspend` user_suspend_table_alias ON user_suspend_table_alias.`userId` =`user_table_alias`.`id`WHERE `user_suspend_table_alias`.`id` IS NULL `user_table_alias`.`emailVerify` = 1ORDER BY `u`.`joinStamp` DESCLIMIT 1, 18 Both tables are pretty simple and well indexed:这两个表都非常简单,而且索引良好:-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(128) NOT NULL DEFAULT ‘‘,`username` varchar(32) NOT NULL DEFAULT ‘‘, `password` varchar(64) NOT NULL DEFAULT‘‘,`joinStamp` int(11) NOT NULL DEFAULT ‘0’,`activityStamp` int(11) NOT NULL DEFAULT ‘0’,`accountType` varchar(32) NOT NULL DEFAULT ‘‘,`emailVerify` tinyint(2) NOT NULL DEFAULT ‘0’, `joinIp` int(11) unsigned NOT NULL, `locationId`int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), UNIQUE KEY `username` (`username`), KEY `accountType` (`accountType`), KEY `joinStamp` (`joinStamp`), KEY `activityStamp` (`activityStamp`)) ENGINE=MyISAM。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MySql与MsSql性能对比对比前提:同一台服务器,记录总数都是:1317920条表结构:CREATE TABLE `me_yarn_monthly_end_detail_stock` (`MONTHLY_END_STOCK_ID` varchar(38) NOT NULL COMMENT '成纱库存期初ID',`MONTHLY_END_ID` varchar(38) DEFAULT NULL COMMENT '成纱月结ID',`CREATE_DATE` datetime DEFAULT NULL COMMENT '创建日期',`YARN_TYPE_CODE` varchar(50) DEFAULT NULL COMMENT '成纱类别',`SHADE_CODE` varchar(50) DEFAULT NULL COMMENT '色号代码',`GODOWN_CODE` varchar(50) DEFAULT NULL COMMENT '仓库',`YARN_LOT_NO` varchar(50) DEFAULT NULL COMMENT '批号',`NM` varchar(50) DEFAULT NULL COMMENT '支数',`QUALITY_CODE` varchar(50) DEFAULT NULL COMMENT '毛纱品质',`LOCATION_CODE` varchar(50) DEFAULT NULL COMMENT '货位',`ACCOUNT_CODE` varchar(50) DEFAULT NULL COMMENT '所属公司',`LAST_MONTHLY_QTY` decimal(15,2) DEFAULT NULL COMMENT '上月结存',`CHECK_QTY` decimal(15,2) DEFAULT NULL COMMENT '初始化数量',`IN_QTY` decimal(15,2) DEFAULT NULL COMMENT '入仓数量',`OUT_QTY` decimal(15,2) DEFAULT NULL COMMENT '出仓数量',`ADJUSTMENT_QTY` decimal(15,2) DEFAULT NULL COMMENT '调整数量',`TURNOVER_QTY` decimal(15,2) DEFAULT NULL COMMENT '转仓数量',`MONTHLY_IN_QTY` decimal(15,2) DEFAULT NULL COMMENT '本月进仓',`MONTHLY_OUT_QTY` decimal(15,2) DEFAULT NULL COMMENT '本月出仓',`QUANTITY` decimal(15,2) DEFAULT NULL COMMENT '库存量/kg',`REMARKS` varchar(800) DEFAULT NULL COMMENT '备注',PRIMARY KEY (`MONTHLY_END_STOCK_ID`),KEY `YARN_TYPE_CODE` (`YARN_TYPE_CODE`,`SHADE_CODE`,`GODOWN_CODE`,`YARN_LOT_NO`,`NM`,`QUALITY_CODE`,` LOCATION_CODE`,`ACCOUNT_CODE`),KEY `MONTHLY_END_ID` (`MONTHLY_END_ID`),KEY `CREATE_DATE` (`CREATE_DATE`)) ENGINE=InnoDB DEFAULT CHARSET=utf81、有关联取总记录数的性能对比MySql:81秒MsSql:7秒2、有联的查询开始条数查询条数MySql用时MsSql用时5000 10 3秒不到1秒10000 10 8秒24秒20000 10 78秒15秒40000 10 76秒27秒50000 10 126秒14秒100000 10 180秒58秒3、无联的查询开始条数查询条数MySql用时MsSql用时5000 10 不到1秒不到1秒10000 10 不到1秒不到1秒20000 10 1秒不到1秒40000 10 2秒不到1秒50000 10 3秒不到1秒100000 10 6秒不到1秒500000 10 31秒5秒1000000 10 63秒5秒4、用到的SQLMySql查总记录数SELECT COUNT(MONTHLY_END_STOCK_ID) as 'Total'FROM `me_yarn_monthly_end_detail_stock`LEFT OUTER JOIN `me_yarn_monthly_end_setting` ON `me_yarn_monthly_end_detail_stock`.`MONTHLY_END_ID` = `me_yarn_monthly_end_setting`.`MONTHLY_END_ID`LEFT OUTER JOIN `ms_loading_port` ON `me_yarn_monthly_end_detail_stock`.`LOCATION_CODE` = `ms_loading_port`.`LOADING_PORT_CODE`LEFT OUTER JOIN `ms_godown` ON `me_yarn_monthly_end_detail_stock`.`GODOWN_CODE` = `ms_godown`.`GODOWN_CODE` LEFT OUTER JOIN `ms_vender` ON `me_yarn_monthly_end_detail_stock`.`ACCOUNT_CODE` = `ms_vender`.`VENDER_ID` LEFT OUTER JOIN `ms_yarn_quality` ON `me_yarn_monthly_end_detail_stock`.`QUALITY_CODE` = `ms_yarn_quality`.`QUALITY_CODE`LEFT OUTER JOIN `ms_godown_location` ON `me_yarn_monthly_end_detail_stock`.`LOCATION_CODE` = `ms_godown_location`.`LOCATION_CODE`;MySql查询SELECT me_yarn_monthly_end_detail_stock.*FROM `me_yarn_monthly_end_detail_stock`LEFT OUTER JOIN `me_yarn_monthly_end_setting` ON `me_yarn_monthly_end_detail_stock`.`MONTHLY_END_ID` = `me_yarn_monthly_end_setting`.`MONTHLY_END_ID`LEFT OUTER JOIN `ms_loading_port` ON `me_yarn_monthly_end_detail_stock`.`LOCATION_CODE` = `ms_loading_port`.`LOADING_PORT_CODE`LEFT OUTER JOIN `ms_godown` ON `me_yarn_monthly_end_detail_stock`.`GODOWN_CODE` = `ms_godown`.`GODOWN_CODE` LEFT OUTER JOIN `ms_vender` ON`me_yarn_monthly_end_detail_stock`.`ACCOUNT_CODE` = `ms_vender`.`VENDER_ID` LEFT OUTER JOIN `ms_yarn_quality` ON `me_yarn_monthly_end_detail_stock`.`QUALITY_CODE` = `ms_yarn_quality`.`QUALITY_CODE`LEFT OUTER JOIN `ms_godown_location` ON `me_yarn_monthly_end_detail_stock`.`LOCATION_CODE` = `ms_godown_location`.`LOCATION_CODE`#order by me_yarn_monthly_end_detail_stock.create_dateLIMIT 1000000, 10;MsSql查总记录数SELECT Count(MONTHLY_END_STOCK_ID) as 'Total'FROM [dbo].me_yarn_monthly_end_detail_stock_newLEFT OUTER JOIN me_yarn_monthly_end_setting ON me_yarn_monthly_end_detail_stock_new.MONTHLY_END_ID = me_yarn_monthly_end_setting.MONTHLY_END_IDLEFT OUTER JOIN ms_loading_port ON me_yarn_monthly_end_detail_stock_new.LOCATION_CODE = ms_loading_port.LOADING_PORT_CODELEFT OUTER JOIN ms_godown ON me_yarn_monthly_end_detail_stock_new.GODOWN_CODE = ms_godown.GODOWN_CODE LEFT OUTER JOIN ms_vender ON me_yarn_monthly_end_detail_stock_new.ACCOUNT_CODE = ms_vender.VENDER_ID LEFT OUTER JOIN ms_yarn_quality ON me_yarn_monthly_end_detail_stock_new.QUALITY_CODE = ms_yarn_quality.QUALITY_CODE LEFT OUTER JOIN ms_godown_location ON me_yarn_monthly_end_detail_stock_new.LOCATION_CODE = ms_godown_location.LOCATION_CODE;MsSql查询SELECT *FROM (SELECT ROW_NUMBER() OVER ( ORDER BY [dbo].[me_yarn_monthly_end_detail_stock_new].[MONTHLY_END_STOCK_ID]) AS Row,me_yarn_monthly_end_detail_stock_new.*FROM [dbo].[me_yarn_monthly_end_detail_stock_new]LEFT OUTER JOIN me_yarn_monthly_end_setting ON me_yarn_monthly_end_detail_stock_new.MONTHLY_END_ID = me_yarn_monthly_end_setting.MONTHLY_END_IDLEFT OUTER JOIN ms_loading_port ON me_yarn_monthly_end_detail_stock_new.LOCATION_CODE = ms_loading_port.LOADING_PORT_CODELEFT OUTER JOIN ms_godown ON me_yarn_monthly_end_detail_stock_new.GODOWN_CODE = ms_godown.GODOWN_CODELEFT OUTER JOIN ms_vender ON me_yarn_monthly_end_detail_stock_new.ACCOUNT_CODE = ms_vender.VENDER_ID LEFT OUTER JOIN ms_yarn_quality ON me_yarn_monthly_end_detail_stock_new.QUALITY_CODE = ms_yarn_quality.QUALITY_CODE LEFT OUTER JOIN ms_godown_location ON me_yarn_monthly_end_detail_stock_new.LOCATION_CODE = ms_godown_location.LOCATION_CODE) as tabwhere Row>=1000000 and Row<1000010。

相关文档
最新文档