当前位置:文档之家› oracle、mysql数据库分页

oracle、mysql数据库分页

oracle、mysql数据库分页
oracle、mysql数据库分页

说一下mysql, oracle等常见数据库的分页实现方案?

数据库面试题专栏

1.Oracle:

select * from ( select row_.*, rownum rownum_ from ( query_SQL ) row_ where rownum =< max) where rownum_ >= min

2.SQL Server:

select top @pagesize * from tablename where id not in (select top

@pagesize*(@page-1) id from tablename order by id) order by id

3.MySQL

select * from tablename limit position, counter

4.DB2

select * from (select *,rownumber() as ROW_NEXT from tablename) where ROW_NEXT between min and max

——————————————————————————————–

1.分页方案一:(利用Not In和SELECT TOP分页)效率次之

语句形式:

SELECT TOP 10 * FROM TestTable

WHERE(ID NOT IN (SELECT TOP 20 id

FROM TestTable ORDERBY id)) ORDERBYID

SELECT TOP 页大小 * FROM TestTable

WHERE( ID NOT IN (SELECT TOP 每页大小-1*待查询页数-1 id FROM 表ORDERBY id)) ORDERBYID

思路:先查询出待查询页之前的全部条数的id,查询ID不在这些ID中的指定数量条数

2.分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高

语句形式:

SELECT TOP 10 * FROM TestTable

WHERE(ID>(SELECT MAX(id) FROM(SELECT TOP20 id FROM TestTable ORDERBYid)AS T))ORDERBY ID

SELECT TOP 页大小* FROM TestTable

WHERE(ID>(SELECT MAX(id) FROM(SELECT TOP 每页大小*待查询页数-1 id FROM 表 ORDERBY id)AS T)) ORDERBY ID

思路:先获得待查询页的之前全部条数id,获得它们当中最大的ID号,以此最大ID号为标志,查找比这个ID号大的指定条数

3.分页方案三:

SELECT TOP PageSize * FROM(SELECT TOP nPage*PageSize * from YOURTABLE order by id)as a order by id desc

SELECT TOP 每页条数 * FROM (SELECT TOP 待查询页*每页条数) * from YOURTABLE order by id)as a order by id desc

思路:先正排序查询出待查询页之前(包括当前页)的全部条数,然后将其倒排序,取指定条数

三大主流数据库对比 哪个更有优势

三大主流数据库对比哪个更有优势 Oracle Oracle 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle 的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。Oracle获得最高认证级别的ISO标准认证.Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录Oracle多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。 Oracle 在兼容性、可移植性、可联结性、高生产率上、开放性也存在优点。Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS,DB2,INGRES,IDMS/R等兼容。Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上不同的大、中、小型机上;可在VMS、DOS、UNIX、WINDOWS等多种操作系统下工作。能与多种通讯网络相连,支持各种协议(TCP/IP、DECnet、LU6.2等)。提供了多种开发工具,能极大的方便用户进行进一步的开发。Oracle良好的兼容性、可移植性、可连接性和高生产率是Oracle RDBMS具有良好的开放性。 Oracle价格是比较昂贵的。据说一套正版的Oracle软件早在2006年年底的时候在市场上的价格已经达到了6位数。所以如果你的项目不是那种超级大的项目,还是放弃Oracle 吧。 SQL Server SQL Server 是Microsoft推出一套产品,它具有使用方便、可伸缩性好、与相关软件集成程度高等优点,逐渐成为Windows平台下进行数据库应用开发较为理想的选择之一。SQLServer是目前流行的数据库之一,它已广泛应用于金融、保险、电力、行政管理等与

总结Oracle和Mysql的区别和特点

总结Oracle和Mysql的区别和特点 ------------------------------------------51联盟在线(51lmzx)对于这个问题很多人都有这样问到,在这里我就总结一下给大家: 一,按系统属性:软件系统不一样,都是数据库系统,mysql的优点是开源免费,oracle的优点是有甲骨文公司强大的技术后盾,功能强大,安全、性能、人性化、等各方面都比mysql好。 二,优缺点对比:mysql的缺点就是功能少,面向的对象是一般的小型网站或者系统,大型数据库很少用mysql;oracle的缺点是对硬件的要求十分高,对管理人员的技术要求高。基本上是这样了。 三,对应的客户群体不一样:Oracle 可以使用在大企业、大公司的数据库领域,mysql适用于小群体,或软件集成。 四,其他功能特点:mysql不支持视图;不支持commit-rollback,有效处理commit-rollback将需要完全不同于mysql使用的表布局,mysql也将需要而外的线程在表上做自清工作,而且磁盘用量将更高,而不用它,mysql比几乎所有的其他SQL数据库都快2到4倍,所以小型开发用mysql是很好的。 五,在Oracle中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show databases。对于我的理解,Oracle项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在ORACLE(db2也一样)

中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可以保存在表空间中。而MYSQL并没有使用表空间来进行管理。 六,查询当前所有的表。ORACLE:select * from tab,MYSQL:show tables。 七,改变连接用户(库)。ORACLE:conn 用户名/密码@主机字符串,MYSQL:use 库名。 八,显示当前连接用户(库)。ORACLE:show user,MYSQL:connect。九,执行外部脚本命令。ORACLE:@a.sql,MYSQL:source a.sql。

oraclesqlservermysql与db2的比较 - oracle 开发

ORACLE、SQLSERVER、MYSQL与DB2的比较- Oracle 开发 比较SQL Server与Oracle、DB2 出处:不祥 关键词:Sql Server, Oracle, 其他1.选择一个好的数据库是非常重要的。2.如何选择一个好的数据库开放性: SQL Server 只能在windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时. Oracle 能在所有主流平台上运行(包括windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。DB2 能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%. 可伸缩性,并行性 SQL server

DB2 并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。Oracle 平行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要, 用户可以把数据库移到UNIX中。DB2 DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境. 数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日 志。数据库分区有时被称为节点或数据库节点安全性 SQL server 没有获得任何安全证书。Oracle Server 获得最高认证级别的ISO标准认证。DB2 获得最高认证级别的ISO标准认证。性能 SQL Server 多用户时性能不佳Oracle 性能最高,保持windowsNT下的TPC-D和TPC-C的世界记录。DB2 适用于数据仓库和在线事物处理性能较高。客户端支持及 应用模式

五大主流数据库比较 (DB2 Oracle MySQL SyBase SQLServer)

一、开放性 1. SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows 平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据库。 2. Oracle 能在所有主流平台上运行(包括windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。Oracle数据库是以结构化查询语言为基础的大型关系数据库,他是用方便逻辑管理的语言来操纵大量有规则的数据的集合,是目前最流行的客户—服务器体系结构的数据库之一。 oracle 的特点: 1),支持多用户,大事务量的事务处理 2),数据安全性和完整性控制 3),提供对于数据库操作的接口 4),支持分布式事务处理 5),可移植性,可兼容性和可连接性 3. Sybase ASE 能在所有主流平台上运行(包括windows)。但由于早期Sybase与OS集成度不高,因此VERSION11.9.2以下版本需要较多OS和DB级补丁。在多平台的混合环境中,会有一定问题。 4. DB2 能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。

5.MySQL Mysql 能在所有主流平台上运行(包括windows)。 二、可伸缩性,并行性 1. SQL server 并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 2. Oracle 并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要,用户可以把数据库移到UNIX 中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。 3. Sybase ASE 虽然有DB SWITCH来支持其并行服务器,但DB SWITCH在技术层面还未成熟,且只支持版本12.5以上的ASE SERVER。DB SWITCH技术需要一台服务器充当SWITCH,从而在硬件上带来一些麻烦。 4. DB2 具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点安全性。 5.Mysql 较强的伸缩性 三、安全认证 1. SQL server

oracle和mysql对比分析

一、MySql与Oracle的差别 1.并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。 mysql: mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。 oracle: oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以oracle对并发性的支持要好很多。 2.一致性 oracle: oracle支持serializable的隔离级别,可以实现最高级别的读一致性。每个session 提交后其他session才能看到提交的更改。oracle通过在undo表空间中构造多版本数 据块来实现读一致性,每个session查询时,如果对应的数据块发生变化,oracle会在undo表空间中为这个session构造它查询时的旧的数据块。 mysql: mysql没有类似oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据。

3.事务 oracle很早就完全支持事务。 mysql在innodb存储引擎的行级锁的情况下才支持事务。 4.数据持久性 oracle 保证提交的数据均可恢复,因为oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,如果出现数据库或主机异常重启,重启后oracle可以考联机在线日志恢复客户提交的数据。 mysql: 默认提交sql语句,但如果更新过程中出现db或主机重启的问题,也许会丢失数据。 5.提交方式 oracle默认不自动提交,需要用户手动提交。 mysql默认是自动提交。 6逻辑备份 oracle逻辑备份时不锁定数据,且备份的数据是一致的。 mysql逻辑备份时要锁定数据,才能保证备份的数据是一致的,影响业务正常的dml使用。 7热备份 oracle有成熟的热备工具rman,热备时,不影响用户使用数据库。即使备份的数据库不一致,也可以在恢复时通过归档日志和联机重做日志进行一致的回复。 mysql:

MySql与Oracle的差别

MySql与Oracle的差别 作者:李迅鹏 前言: 公司同事讯鹏的小作,精炼而全面。 基本上:一个是面向商业环境和用户的付费数据库,讲究可靠稳定和事务ACID原则以及标准的SQL-92事务隔离级别,一个则是发硎于开源社区,伴随web应用的扩展和深入而逐渐曲折发展的免费数据库,对事务和数据一致性没有严格要求,同时也不支持海量大并发(通常情况下,特殊的优化情况下:在SAAC 2010上百度的刘斌同志已经讲过,12000的seqential读QPS;6000的random读;以及4000的混合QPS,还是不错的呵呵)。本文也不取题为“性能特性比较”而是“差别”,就是此意。 所以,淘宝才在交易系统上使用海量oracle,同时也有大量的mysql的install

base 。。。。。 正文: 近期突击学习了mysql,应杨毅的邀请,简单比较一下mysql 和oracle的差别,不当之处欢迎大家指正。 一、并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。 mysql:

mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。 虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。 oracle: oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以oracle对并发性的支持要好很多。 二、一致性 oracle: oracle支持serializable的隔离级别,可以实现最高级别的

mysql与oracle数据类型对照

MySQL Data Type Oracle Data Type Java BIGINT NUMBER(19, 0)https://www.doczj.com/doc/c114124156.html,ng.Long BIT RAW byte[] BLOB BLOB, RAW byte[] CHAR CHAR https://www.doczj.com/doc/c114124156.html,ng.String DATE DATE java.sql.Date DATETIME DATE java.sql.Timestamp DECIMAL FLOAT (24)java.math.BigDecimal DOUBLE FLOAT (24)https://www.doczj.com/doc/c114124156.html,ng.Double DOUBLE PRECISION FLOAT (24)https://www.doczj.com/doc/c114124156.html,ng.Double ENUM https://www.doczj.com/doc/c114124156.html,ng.String FLOAT FLOAT https://www.doczj.com/doc/c114124156.html,ng.Float INT NUMBER(10, 0) https://www.doczj.com/doc/c114124156.html,ng.Integer INTEGER NUMBER(10, 0) https://www.doczj.com/doc/c114124156.html,ng.Integer LONGBLOB BLOB, RAW byte[] LONGTEXT CLOB, RAW https://www.doczj.com/doc/c114124156.html,ng.String MEDIUMBLOB BLOB, RAW byte[] MEDIUMINT NUMBER(7, 0) https://www.doczj.com/doc/c114124156.html,ng.Integer MEDIUMTEXT CLOB, RAW https://www.doczj.com/doc/c114124156.html,ng.String NUMERIC NUMBER REAL FLOAT (24) SET VARCHAR2 https://www.doczj.com/doc/c114124156.html,ng.String

SMALLINT NUMBER(5, 0) https://www.doczj.com/doc/c114124156.html,ng.Integer TEXT VARCHAR2, CLOB https://www.doczj.com/doc/c114124156.html,ng.String TIME DATE java.sql.Time TIMESTAMP DATE java.sql.Timestamp TINYBLOB RAW byte[] TINYINT TINYINT https://www.doczj.com/doc/c114124156.html,ng.Boolean TINYTEXT https://www.doczj.com/doc/c114124156.html,ng.String VARCHAR VARCHAR2, CLOB https://www.doczj.com/doc/c114124156.html,ng.String YEAR YEAR java.sql.Date(日期 设为2月1日点)

MySQL与Oracle的语法区别详细对比

MySQL与Oracle的语法区别详细对比 Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> select to_char(add_months(to_date ('20000101','yyyymmdd'),1),'yyyy-mm-dd') from dual; 结果:2000-02-01 SQL> select to_char(add_months(to_date('20000101','yyyymmdd'),5),'yyyy-mm-dd') from dual; 结果:2000-06-01 mysql> select date_add('2000-01-01',interval 1 month); 结果:2000-02-01 mysql> select date_add('2000-01-01',interval 5 month); 结果:2000-06-01 截取字符串: SQL> select substr('abcdefg',1,5) from dual; SQL> select substrb('abcdefg',1,5) from dual; 结果:abcdemysql> select substring('abcdefg',2,3); 结果:bcd

数据库迁移及区别比较(Oracle,Sql Server,MySql)

数据库迁移及及区别(Oracle,MySQL,SQLServer) https://www.doczj.com/doc/c114124156.html,/brightmart 徐亮,2011-4-1 导言:最近的数据超市项目需要从SQLServer迁移到MySql。在之前并没有很多数据库迁移方面的经验,所以也不知道迁移需要花费多久,都要做什么工作。通过几天的工作,项目已经顺利迁移到MySql上。该文档总结了迁移的经验,同时也方便以后数据库迁移。 1、数据库迁移需要做的工作 1.1 建表脚本修改 1.2 数据导入(编码、数据类型设置) 1.3 项目中的SQL修改 1.4 数据库连接(驱动) 1.5 连接项目中的程序,测试并修改程序 2、常用数据库中在开发方面的不同 2.1 数据类型 2.2 自增 2.3 分页 2.4 内置函数 2.5 模糊查询 3、ORM工具与迁移 使用hibernate、ibatis,在数据库迁移中的不同效率 4、各数据库的不同数据类型比较及参考资料 4.1、MySQL中的建表SQL

4.2、Java到SQL数据类型影射表 4.3、MySql与Oracle数据类型的相互转化 4.4、ORACLE与SQLSERVER、MYSQL的数据类型对照表 1、数据库迁移需要做的工作 1、1 数据库建表脚本的修改 1.1.1 由于各种数据库的数据类型并不相同,需要更改部分数据类型。 1.1.2 在MySQL脚本里暂不能给日期数据设置当前时间,字段如:registertime(注册时间);需在程序中设置当前日期,再保存进数据库或将registertime设置为时间戳(timestamp) 1.1.3 在MySQL里的表和字段的注释,见【5】中的建表语句。 1、2 将数据导入到目标数据库的中(其中可以需要修改数据类型) 1.2.1设置数据库的编码,防止中文乱码 1)、最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 如:default-character-set = utf8 (character_set_server = utf8) 修改完后,重启mysql的服务,service mysql restart 2)、还有一种修改字符集的方法,就是使用mysql的命令,如: mysql> SET character_set_client = utf8 ;mysql> SET character_set_connection = utf8 ; mysql> SET character_set_database = utf8 ;mysql> SET character_set_results = utf8 ;mysql> SET character_set_server = utf8 ;mysql> SET collation_connection = utf8 ;mysql> SET collation_database = utf8 ; mysql> SET collation_server = utf8 ; 如果:没有设置前两条,可以通过以下方式实现编码: a 建数据库时设置数据库支持的编码:create database datmart charset=utf8; b 使用数据库datmart use datmart; c 插入中文数据时,需要先设置:set names utf8; d 将数据导入source

mysql与oracle函数比较

编 号 类别ORACLE 1 数字函 数round(1.23456,4)round(1.23456,4) 2abs(-1)abs(-1) 3ceil(-1.001))ceiling(-1.001) 4floor(-1.001)floor(-1.001) 5Max(expr)/Min(expr)Max(expr)/Min(expr)

6 字符串 函数ascii(str)ascii(str) 7CHAR(N,...)CHAR(N,...) 8REPLACE(str,from_str,to_str)REPLACE(str,from_str, 9INSTR('sdsq','s',2)INSTR('sdsq','s') 10SUBSTR('abcd',2,2)substring('abcd',2,2)

11instr(‘abcdefg’,’ab’)locate(‘ab’,’abcdefg’) 12length(str)char_length() 13REPLACE('abcdef', 'bcd', 'ijklmn')REPLACE('abcdef', 'bcd 14LPAD('abcd',14, '0')LPAD('abcd',14, '0') 15UPPER(iv_user_id)UPPER(iv_user_id) 16LOWER(iv_user_id)LOWER(iv_user_id)

17 控制 流函 数nvl(u.email_address, 10) IFNULL(u.email_ad 或 ISNULL(u.email_ad 18DECODE(iv_sr_status,g_sr_status_com, ld_sys_date, NULL)无,请用IF或CASE IF语句格式:(expr1,expr

【IT专家】数据库Oracle与Mysql语法对比:变量赋值

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 数据库Oracle 与Mysql 语法对比:变量赋值 2016/11/11 225 Oracle PL/SQL 程序的基本单元是块(BLOCK),块就是实现一 定功能的逻辑模块。一个PL/SQL 程序由一个或多个块组成。块有固定的结构,也 可以嵌套。一个块可以包括三个部分,每个部分由一个关键字标识。块中各部分 的作用解释如下:(1) DECLARE:声明部分标志。(2) BEGIN:可执行部分标志。 (3) EXCEPTION:异常处理部分标志。(4) END;:程序结束标志。在以下的训练 中,将使用函数DBMS_OUTPUT.PUT_LINE 显示输出结果。DBMS_OUTPUT 是Oracle 提供的包,该包有如下三个用于输出的函数,用于显示PL/SQL 程序模块的 输出信息。第一种形式:DBMS_OUTPUT.PUT(字符串表达式);用于输出字 符串,但不换行,括号中的参数是要输出的字符串表达式。第二种形式: DBMS_OUTPUT.PUT_LINE(字符串表达式);用于输出一行字符串信息,并换 行,括号中的参数是要输出的字符串表达式。第三种形式: DBMS_OUTPUT.NEW_LINE;用来输出一个换行,没有参数。调用函数时, 在包名后面用一个点“.”和函数名分隔,表示隶属关系。 SET SERVEROUTPUT ON DECLARE --声明部分标识v_job VARCHAR2(9); v_count BINARY_INTEGER DEFAULT 0; v_total_sal NUMBER(9,2) := 0; c_tax_rate CONSTANT NUMBER(3,2) := 8.25; v_valid BOOLEAN NOT NULL := TRUE; BEGIN v_job:=‘MANAGER’; --在程序中赋值DBMS_OUTPUT.PUT_LINE(v_job); - -输出变量v_job 的值DBMS_OUTPUT.PUT_LINE(v_count); --输出变量v_count 的值DBMS_OUTPUT.PUT_LINE(v_date); --输出变量v_date 的值DBMS_OUTPUT.PUT_LINE(c_tax_rate); --输出变量c_tax_rate 的值END; 执行结 果:Mysql 把查询结果赋值到变量,大部分情况下使用游标来完成,但是如果明 确知道查询结果只有一行(例如统计记录的数量,某个字段求和等),其实可以使用 set 或into 的方式来实现赋值。示例代码: drop table if exists test_tbl;create table test_tbl (name varchar(20), status int(2));insert into test_tbl values(‘abc’,1),(‘edf’,2),(‘xyz’,3);drop procedure IF EXISTS

Oracle 与 MySQL 的差异分析(1):数据库结构

Oracle 与MySQL 的差异分析(1):数据库结构 1.1 数据库实例(Instance) 在Oracle中,实例指的是数据库启动后的后台进程和内存,它和数据库是一一对应的,不过在RAC中一个数据库对应多个实例。在一个Server上一般只有一个数据库实例。 在MySQL 中,运行一个数据库服务就启动一个数据库实例,它不存在RAC 这种多实例的情况,所以一般不强调实例这个概念。 1.2 数据库用户(Schema) 一个数据库可能对应多个应用,为了有独立的命名空间,需要有多个schema。在Oracle中,一个用户就是一个schema,创建用户的命令是:create user XXXX identified XXXX。 在MySQL 中,database 和schema 的概念是一样的,一个MySQL 数据库下有多个database。创建database 的命令可以用create database/schema a XXXX。 通过show database 可以查看有哪些数据库。 1.3 连接数据库 在Oracle 中,客户端通过监听器连接数据库实例,Oracle 的监听器是独立的程序,一个监听器(默认端口号1521)可以监听一个或多个数据库实例。 Oracle 远程登陆命令: sqlplus 用户名/密码@IP:端口/服务名 MySQL 的服务端口默认是3306,MySQL 远程登陆命令: mysql -hIP -u 用户名-p 密码-P 端口 Oracle 使用Schema 作为用户来登陆的,所以它默认访问的就是该schema 的对象。MySQL 登陆的用户账号和数据库schema 之间没有关系,即登陆用户和数据库对象之间没有归属关系,登陆后默认可以访问所有数据库对象,如果未指定数据库,那么就需要用数据库名.表名的方式来访问一个表。 1.4 存储引擎 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。在Oracle 和SQL Server 等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySQL 数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 InnoDB:是默认的存储引擎,它提供了事务、行级锁机制和外键约束的功能。 配置文件中可以配置默认的存储引擎

浅析MySQL、SQL Server、Oracle的异同点

浅析MySQL、SQL Server、Oracle的异同点 计112 肖洪岳

从以下几方面进行简要分析: 开放性 可伸缩性,并行性 安全性 性能 客户端支持及应用模式 使用风险

一、开放性 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 r 只能在Windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。

二、可伸缩性,并行性 1、Mysql 使用C和C++编写,并使用了多种编译器进行测试,保证源代 码 的可移植性。 2、SQL Server 并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。 3、Oracle 平行服务器通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果WindowsNT不能满足需要, 用户可以把数据库移到UNIX中。

三、安全性 2 3 1 SQL server 没有获得任何安全证书。 Mysql 有没有获得安全 认证Oracle 获得最高认证级别的ISO 标准认证。

四、性能 Mysql 支持多线程,充分利用CPU资源 SQL Server 多用户时性能不佳 Oracle 性能最高,保持WindowsNT下的TPC-D和TPC-C的世界记录。

3-你真的了解oracle数据库和mysql数据库的区别吗

你真的了解oracle数据库和mysql数据库的区别吗 学过数据库的你是否了解oracle与mysql的区别呢?不太了解的话要不和乔布简历小编一起来看看吧! oracle数据库和mysql数据库的不同之处 1、体积不同。oracle是oracle的数据库产品,它体积比较庞大,一般是用来开发大型应用(例如分布式)的。而mysql的体积相对来说比较小,较之oracle更容易安装、维护以及管理,操作也简单,最重要的是它是三个中唯一一个开源数据库,但目前也属于Oracle公司的产品了。 2、容量不同。Oracle容量无限,根据配置决定;而mysql使用MyISAM存储引擎,最大表尺寸为65536TB。MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定。 3、平台支持及速度的区别。Oracle支持大对数平台;而mysql支持各种平台,适合Linux。至于速度,oracle在linux下的性能,在少量数据时速度低于mysql,在千万级时速度快于Mysql。 4、数据库崩溃造成的影响不同。oracle数据库崩溃后恢复很麻烦,因为他把很多东西放在内存里;数据库连接要慢些,最好用连接池;而mysql使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入,使用myisam配置,不慎损坏数据库,结果可能会导致所有的数据丢失。 5、性能的区别。Oracle全面,完整,稳定,但一般数据量大,对硬件要求较高;而mysql 使用CPU和内存极少,性能很高,但扩展性较差。 6、授权价格区别。Oracle价格较贵,例如Oracle 10G//11G 标准版[10用户]¥25600 ,Oracle 10G//11G 标准版[1CPU无限用户] ¥157600。而MySQL采用双重授权,他们是GPL和MySQLAB制定的商业许可协议。如果你在一个遵循GPL的自由项目中使用MySQL,那么你可以遵循GPL协议免费使用MySQL。否则,你需要购买MySQLAB制定的那个商业许可协议。 你真的了解oracle数据库和mysql数据库的区别吗 https://www.doczj.com/doc/c114124156.html,/knowledge/articles/56a72ea30cf25bdd2926c1ce

Oracle-SQLServer-MySQL-MongoDB数据库比较

主流数据库比较

目录 前言 (3) 1. 数据库安装对硬件的要求 (3) 1.1. Oracle (3) 1.2. SQL Server (4) 1.3. MySQL (4) 2. 数据类型对比 (5) 2.1. Oracle数据类型 (5) 2.2. SQL Server 数据类型 (6) 2.3. MySQL 数据类型 (7) 3. 三大关系型数据库比较 (8) 4. 应用场景 (12) 4.1. Oracle的一般应用 (12) 4.2. MySQL的应用场景 (13) 4.3. SQL Server的应用 (13) 5. MongoDB-非关系型数据库 (13) 5.1. MongoDB的应用场景 (13) 5.2. MongoDB与MySQL性能比较 (14) 5.2.1. 测试目的 (14) 5.2.2. 测试环境 (14) 5.2.3. 测试结果1:插入速率 (14) 5.2.4. 测试结果2:插入稳定性 (15) 5.2.5. 测试结果3:读取性能测试 (17) 5.2.6. 测试结论 (19) 5.3. MongoDB的优势和缺陷 (20) 5.3.1. MongoDB的优势 (20) 5.3.2. MongoDB的缺陷 (20)

前言 数据库流行度排行榜来自于美国数据库知识网站DB-engines,在本月(2014-10)的榜单中,前三甲依然是Oracle、MySQL和Microsoft SQL Server。前十名中文档型数据库MongoDB 和列式数据库Cassandra作为仅有的两个NoSQl数据库分别位列第五和第十名。 下面就对排名前三甲的关系型数据库(Oracle、MySQL、SqlServer)进行一下对比、以及最受欢迎的非关系型MongoDB。 1.数据库安装对硬件的要求 1.1. Oracle 以Oracle 11g为例,系统是Windows: 硬件要求 配置组件最低配置 ------------------------- ----------------------------------- Physical memory (RAM) 1 GB minimum Virtual memory Double the amount of RAM Disk space Total: 4.76 GB Video adapter 256 colors Processor 550 MHz minimum (On Windows Vista, 800 MHz minimum) 磁盘空间要求 Oracle组件最低要求 ------------------------ ----------------------------------- TEMP Space 200 MB C:\Program Files\Oracle 3.1 MB Oracle Home 2.96 GB Datafiles * 1.60 GB ------------------------ ---------------------------------- Total 4.76 GB

Oracle与MySQL的几点区别

Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。 1.组函数用法规则 mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错 eg: select name,count(money) from user;这个放在mysql中没有问题在oracle中就有问题了。 2.自动增长的数据类型处理 MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE 没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。 CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的长度来定,如果定义的自动增长的序列号NUMBER(6),最大值为999999 INSERT语句插入这个字段值为:序列号的名称.NEXTVAL 3.单引号的处理 MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。 4.翻页的SQL语句的处理 MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还可以用SEEK定位到结果集的位置。ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80。 以下是经过分析后较好的两种ORACLE翻页SQL语句(ID是唯一关键字的字段名): 语句一:

MySQL、Oracle、SqlServer三种数据库的优缺点

MySQL、Oracle、SqlServer三种数据库的优缺点 这篇文章主要介绍了sqlserver、Mysql、Oracle三种数据库的优缺点总结,需要的朋友可以参考下。 一、sqlserver 优点: 易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等; 为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力; 缺点: 开放性:SQL Server 只能windows上运行没有丝毫开放性操作系统系统稳定对数据库十分重要Windows9X系列产品偏重于桌面应用NT server只适合小型企业而且windows平台靠性安全性和伸缩性非常有限象unix样久经考验尤其处理大数据库; 伸缩性并行性:SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限; 安全性:没有获得任何安全证书。 性能:SQL Server 多用户时性能佳; 客户端支持及应用模式:客户端支持及应用模式。只支持C/S模式,SQL Server C/S结构只支持windows客户用ADO、DAO、OLEDB、ODBC连接; 使用风险:SQL server 完全重写代码经历了长期测试断延迟许多功能需要时间来证明并十分兼容; 二、Oracle 优点:

mysql和Oracle性能比较

mysql和Oracle性能比较 版本 拟制陈彬日期2014-12-04 审核日期 批准日期

目录 1 目的.......................................................... .3 2 环境.......................................................... .3 3 MYSQL和ORACLE的性能比较测试结果................................ .3 4 INSERT的速度比较............................................... .3 5 UPDATE的速度比较............................................... .6 6 DELETE的速度比较............................................... .8 7 SELECT的速度比较.............................................. .10 8 总结......................................................... .12

1 目的 比较在mysql和Oracle数据库中insert、update、delete、select的速度。 2 环境 3 mysql和oracle的性能比较测试结果 4 insert的速度比较

4.1 mysql上的insert 速度 1、创建表 CREATE TABLE LAB_SPECIMEN_REPORT_DETAIL ( id varchar(96) NOT NULL, englongname varchar(600) DEFAULT NULL, engname varchar(600) DEFAULT NULL, refmethodstring varchar(3000) DEFAULT NULL, status bigint(10) DEFAULT NULL, subbarcode varchar(120) DEFAULT NULL, testmethod varchar(300) DEFAULT NULL, testname varchar(600) DEFAULT NULL, tip varchar(300) DEFAULT NULL, uniquecode varchar(300) DEFAULT NULL, unit varchar(300) DEFAULT NULL, created_by_user varchar(96) DEFAULT NULL, updated_by_user varchar(96) DEFAULT NULL, specimen_report varchar(96) DEFAULT NULL, eng_testmethod varchar(2000) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2、执行insert 语句 insert语句脚本(共99849条记录)如下: test.sql source /root/test.sql

相关主题
文本预览
相关文档 最新文档