2022年数据库之间的差终稿

上传人:无*** 文档编号:121057704 上传时间:2022-07-18 格式:PDF 页数:14 大小:163.08KB
收藏 版权申诉 举报 下载
2022年数据库之间的差终稿_第1页
第1页 / 共14页
2022年数据库之间的差终稿_第2页
第2页 / 共14页
2022年数据库之间的差终稿_第3页
第3页 / 共14页
资源描述:

《2022年数据库之间的差终稿》由会员分享,可在线阅读,更多相关《2022年数据库之间的差终稿(14页珍藏版)》请在装配图网上搜索。

1、Oracle、sql Server、mySql 三者的区别一、性能差异1、mySql和 sql Server 是中型数据库,具有数据库的一切功能.事务,并发访问.锁.游标.函数库.存储过程.触发器.权限管理等一系列的高级工具.可以支持更高的并发访问量.大约在50 万左右.Oracle 数据重量级的数据库了.算是一个比较完善的数据库管理系统.出了涵盖所有的数据库常用操作以外.oracle 本省也内建了很多自己独有的东西.比如说字符型的varchar2 等.2、sql server 和 oracle 对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL和 SQLServer。这两者最

2、基本的相似之处在于数据存储和属于查询系统。你可以使用sql 来访问这两种数据库的数据,因为它们都支持ansi-sql。还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度。同时,二者也都提供支持xml 的各种格式。除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在这二者之间你是如何选择的?让我们看看这两个产品的主要的不同之处,包括发行费用,性能以及它们的安全性。根本的区别是它们遵循的基本原则二者所遵循的基本原则是它们的主要区别:开放vs 保守。SQLServer 服务器的狭隘的,保守的存储引擎与MySQL 服务器的可扩展,开放的存储引擎绝然不同。虽

3、然你可以使用SQLServer 服务器的 sybase引擎,但MySQL 能够提供更多种的选择,如myisam,heap,innodb,and berkeley db。MySQL 不完全支持陌生的关键词,所以它比SQLServer 服务器要少一些相关的数据库。同时,MySQL也缺乏一些存储程序的功能,比如 myisam 引擎联支持交换功能。发行费用:MySQL 不全是免费,但很便宜当提及发行的费用,这两个产品采用两种绝然不同的决策。对于 SQLServer 服务器,获取一个免费的开发费用最常的方式是购买微软的office或者 visual studio的费用。但是,如果你想用于商业产品的开发,

4、你必须还要购买sql server standard edition。学校或非赢利的企业可以不考虑这一附加的费用。性能:先进的MySQL 纯粹就性能而言,MySQL 是相当出色的,因为它包含一个缺省桌面格式myisam。myisam 数据库与磁盘非常地兼容而不占用过多的cpu 和内存。MySQL 可以运行于windows 系统而不会发生冲突,在unix 或类似 unix 系统上运行则更好。你还可以通过使用64 位处理器来获取额外的一些性能。因为MySQL 在内部里很多时候都使用64 位的整数处理。Yahoo!商业网站就使用 MySQL 作为后台数据库。当提及软件的性能,SQLServer 服务

5、器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 14 页 -和软件不能充分支持SQLServer 服务器,我建议你最好选择其他如dbms数据库,因为这样你会得到更好的结果。安全功能MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。在 SQLServer服务器中,你也可以记录SQLServer 的有关查询,但这需要付出很高的代价。

6、安全性这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的ip 端口,但是有时候很不幸,这些 ip 也会被一些黑客闯入。当然,你也可以自己设置这些ip 端口。恢复性:先进的 sql 服务器恢复性也是 MySQL的一个特点,这主要表现在myisam 配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。然而,对于 SQLServer 服务器而言就表现得很稳键。SQLServer 服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。根据需要决定你的选择对于这两种数据库,如果非要让我说出到底哪一种更加出色,也

7、许我会让你失望。以我的观点,任一对你的工作有帮助的数据库都是很好的数据库,没有哪一个数据库是绝对的出色,也没有哪一个数据库是绝对的差劲。我想要告诉你的是你应该多从你自己的需要出发,即你要完成什么样的任务?而不要单纯地从软件的功能出发。如果你想建立一个.net服务器体系,这一体系可以从多个不同平台访问数据,参与数据库的管理,那么你可以选用SQLServer 服务器。如果你想建立一个第三方站点,这一站点可以从一些客户端读取数据,那么MySQL 将是最好的选择。这两者数据库都能够在.net或 j2ee 下运行正常,同样,都能够利用raid。=ORACLE、SQLSERVER、MYSQL 与 DB2的

8、比较http:/ 以下被引用:ORACLE 大型,完善,安全 SQLSERVER 简单,界面友好,WINDOWS 平台下的好选择 MYSQL 免费,功能不错名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 14 页 -DB2 超大型,与ORACLE 类似以下被引用:ORACLE 大型,完善,安全 SQLSERVER 简单,界面友好,WINDOWS 平台下的好选择 MYSQL 免费,功能不错 DB2 超大型,与ORACLE 类似以下被引用:oracle:数据完整性,安全性要求较高的场合;sqlserver(sybase和 ms):ms的 sqlserver简单,好用,用于企业级的数据

9、应用,性能没有问题,支持所有大型 rdbms 的特性;mysql:基本免费,适合个人网站及一些小企业的网站应用;db2:大型数据库,特长在于信息的存取。以下被引用:Oracle 适用于较大型系统,但上手比较困难,即便上手后也很难提高。需要有长期的实践和摸索,但确实比较适合大系统。备份与恢复比较完善,但必需很有经验才能做的比较好。数据量不超过1T,可以用它 SqlServer:个人认为MS平台下最好用的数据库。界面简单友好,操作方便,备份与恢复都比较容易学会。而且学会SqlServer后与 SYBASE 也比较接近的。MYSQL 以前学 PHP用的,感觉比较简单,无论是上手还是其本身的功能。DB

10、2 我在 AS/400 上和 MS平台都用过,感觉就是非常严谨,必须有非常规范的操作。如果数据量超过百G,建议用它。以下被引用:oracle其实已经没有什么可以夸耀的了,看看他今年的业绩也就知道了。他的技术现在就连微软都能实现了,从技术上看实在是没有什么理由值得采用 DB2 的数据仓库还是相当出色,数据挖掘也很不错,特别是集群技术可以使DB2的可扩性能达到极致。看看今年的业绩就知道DB2的优势了,当然它的价格比其他的略贵,不过还是可以接受,至少远远低于oracle的价格 Sybase已经快要消亡了,现在很少有新系统会采用这个东西了,反正我现在的公司已经放弃这个了 MySQL不错的东东,强烈推荐

11、,但是用起来实在是另类,比如没有存储过程,如果不考虑集群,其实他的效率要远远高于oracle SQL Server 微软的东西,用起来感觉还不错,但是因为不能使用在UNIX 上,所以企业,电信,政府都不是很愿意用。如果不是做ERP最好不要用这个东西,否则产品可能会买不出去sqlserver与 oracle的区别Oracle 可在所有主流平台上运行。SQL Server 只能在 Windows 下运行着信息技术的飞速发展,数据处理不仅在数量上要求越来越大,而且在质量上也要求越来越高。Oracle 数据库在大多数企业中受到广泛使用,而SQL Server 数据库也因为和Windows的联系,在企业

12、中的使用也是非常广泛。操作系统的稳定对数据库来说是十分紧要的,在数据库可操作平台上,Oracle 可在所有主名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 14 页 -流平台上运行,Oracle 数据库采用开放的策略目标,它使得客户可以选择一种最适合他们特定需要的解决方案。客户可以利用很多种第三方应用程序、工具。对开发商来说是很大的支持。而SQL Server 却只能在Windows上运行了,这个就显得比较单调了,但SQL Sever在 Window平台上的表现,和 Windows 操作系统的整体结合程度,使用方便性,和 Microsoft开发平台的整合性都比Oracle 强的很

13、多。但Windows操作系统的稳定性及可靠性大家是有目共睹的,再说 Microsoft公司的策略目标是将客户都锁定到Windows平台的环境当中,只有随着 Windows 性能的改善,SQL Server 才能进一步提高。从操作平台这点上Oracle 是完全优胜于SQL Server 的了。从资料上可以看到,Oracle 的安全认证获得最高认证级别的ISO 标准认证,而SQL Server并没有获得什么安全认证。这方面证明了Oracle 的安全性是高于SQL Server 的。购买一个产品,首先考虑的当然是产品的性能了,当考虑性能的同时当然少不了究竟要花多少钱在这产品也是个很关键的问题。要建立

14、并运行一个数据库系统。不仅仅包含最初购置软件、硬件的费用,还包含了培训及以后维护的费用。Orcale 数据库的价格是远比SQL Server数据库要高,为什么 Oracle 数据库比 SQL Server 数据库价格上要高出那么多,一方面 Oracle的初始花费相对较高,特别是在考虑工具软件的时候,Oracle 很多工具软件需要另外购买,与 Microsoft提供免费的SQL Server 工具软件相比,Oracle 更显价格的不菲。但由于SQL Server 只能在 Windows 下运行的原因,普遍认为SQL Server 数据库的可靠性是比较差的。Oracle 的性能优势体现在他的多用户

15、上,而 SQL Server 的性能优势在多用户上就显得力不从心了。操作上 SQL Server 明显要比Orcale 简单,如果你用过Java 和 DOTNET 的开发平台,区别的基本就是Oracle 和 SQL Server 不同,Oracle 的界面基本是基于Java 的,大部分的工具是Dos 界面的,甚至SQLPlus 也是,SQL Server是跟 VB一样,全图形界面,很少见到DOS窗口。SQL Server 中的企业管理器给用户提供一个全图形界面的集成管理控制台来集中管理多个服务器。Oracle 也有自己的企业管理器,而且它的性能在某些方面甚至超过了SQL Server 的企业管

16、理器,但它安装较为困难。Orcale 数据库和SQL Server 数据库那个更快?其实是一个很难答的问题,因为存在许多不定因素,包括处理类型、数据分布以及硬件基础设施等。SQL Server 2000是一个具备完全Web支持的数据库产品,提供了可扩展标记语言核心支持以及 Internet上和防火墙外进行查询的能力,具有可伸缩性、灵活性、扩充性好,而且价格便宜等特点,而Oracle 则有着可靠安全性,速度比SQL Server 快上百倍,但其价格在实施中却比SQL Server 它高出了几百倍。其实各行业考虑选择那种数据库,是由数据库的特点以及根据自己的业务需求和基础设施综合考虑来决定的。or

17、acle中有复合数据类型 sql server中没有声明方式:变量名对象名 type 这里的变量类型可以是所有以存在的数据类型,具有依赖性,存储过程中用这种变量比较灵活,但效率应该会低些名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 14 页 -oracle存储过程中借助cursor类型变量返回并访问记录集 sql server中我没用过类似功能oracle里这么用:存储过程中边查询边给变量赋值select 某一列名 into 变量名 from table where.;相当于 oracle中的 select 变量名=列.二、各数据库的sql 语句差别1.取前几条数据MySQL

18、语法SELECT*FROM Persons LIMIT 5Oracle 语法SELECT*FROM Persons WHERE ROWNUM=5 SQL Server 的语法SELECT TOP 2*FROM Persons SELECT TOP 50 PERCENT*FROM Persons 2.MySQL 建表约束CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255)NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),UNIQUE(Id

19、_P)SQL Server/Oracle/MS Access建表约束CREATE TABLE Persons(Id_P int NOT NULL UNIQUE,LastName varchar(255)NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255)如果需要命名UNIQUE 约束,以及为多个列定义UNIQUE 约束,请使用下面的SQL 语法:MySQL/SQL Server/Oracle/MS Access:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 14 页 -CREATE TABL

20、E Persons(Id_P int NOT NULL,LastName varchar(255)NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT uc_PersonID UNIQUE(Id_P,LastName)3.撤销UNIQUE 约束MySQL:ALTER TABLE Persons DROP INDEX uc_PersonID SQL Server/Oracle/MS Access:ALTER TABLE Persons DROP CONSTRAINT uc_PersonI

21、D 4.SQL PRIMARY KEY 约束MySQL:CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255)NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),PRIMARY KEY(Id_P)SQL Server/Oracle/MS Access:CREATE TABLE Persons(Id_P int NOT NULL PRIMARY KEY,LastName varchar(255)NOT NULL,FirstName varch

22、ar(255),Address varchar(255),City varchar(255)如果需要命名PRIMARY KEY 约束,以及为多个列定义PRIMARY KEY 约束,请使用下面的SQL 语法:MySQL/SQL Server/Oracle/MS Access:CREATE TABLE Persons 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 14 页 -(Id_P int NOT NULL,LastName varchar(255)NOT NULL,FirstName varchar(255),Address varchar(255),City varchar

23、(255),CONSTRAINT uc_PersonID PRIMARY KEY(Id_P,LastName)SQL PRIMARY KEY Constraint on ALTER TABLE 如果在表已存在的情况下为Id_P 列创建PRIMARY KEY 约束,请使用下面的SQL:MySQL/SQL Server/Oracle/MS Access:ALTER TABLE Persons ADD PRIMARY KEY(Id_P)如果需要命名PRIMARY KEY 约束,以及为多个列定义PRIMARY KEY 约束,请使用下面的SQL 语法:MySQL/SQL Server/Oracle/MS

24、 Access:ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY(Id_P,LastName)5.撤销PRIMARY KEY 约束如需撤销PRIMARY KEY 约束,请使用下面的SQL:MySQL:ALTER TABLE Persons DROP PRIMARY KEY SQL Server/Oracle/MS Access:ALTER TABLE Persons DROP CONSTRAINT pk_PersonID 6.SQL FOREIGN KEY Constraint on CREATE TABLE 下面的SQL 在

25、 Orders 表创建时为Id_P 列创建FOREIGN KEY:MySQL:CREATE TABLE Orders(O_Id int NOT NULL,OrderNo int NOT NULL,Id_P int,PRIMARY KEY(O_Id),FOREIGN KEY(Id_P)REFERENCES Persons(Id_P)SQL Server/Oracle/MS Access:CREATE TABLE Orders 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 14 页 -(O_Id int NOT NULL PRIMARY KEY,OrderNo int NOT NU

26、LL,Id_P int FOREIGN KEY REFERENCES Persons(Id_P)7.如果需要命名FOREIGN KEY 约束,以及为多个列定义FOREIGN KEY 约束,请使用下面的SQL 语法:MySQL/SQL Server/Oracle/MS Access:CREATE TABLE Orders(O_Id int NOT NULL,OrderNo int NOT NULL,Id_P int,PRIMARY KEY(O_Id),CONSTRAINT fk_PerOrders FOREIGN KEY(Id_P)REFERENCES Persons(Id_P)8.SQL FO

27、REIGN KEY Constraint on ALTER TABLE 如果在Orders 表已存在的情况下为Id_P 列创建FOREIGN KEY 约束,请使用下面的 SQL:MySQL/SQL Server/Oracle/MS Access:ALTER TABLE Orders ADD FOREIGN KEY(Id_P)REFERENCES Persons(Id_P)如果需要命名FOREIGN KEY 约束,以及为多个列定义FOREIGN KEY 约束,请使用下面的SQL 语法:MySQL/SQL Server/Oracle/MS Access:ALTER TABLE Orders ADD

28、 CONSTRAINT fk_PerOrders FOREIGN KEY(Id_P)REFERENCES Persons(Id_P)撤销FOREIGN KEY 约束如需撤销FOREIGN KEY 约束,请使用下面的SQL:MySQL:ALTER TABLE Orders DROP FOREIGN KEY fk_PerOrders SQL Server/Oracle/MS Access:ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 14 页 -9.To get the current

29、date and time:程序代码Microsoft SQL Server Select GETDA TE()GO MySQL retrieving the date but not time Select CURDATE();MySQL retrieving date and time Select NOW();oracle Select SYSDATE FROM dual;PostgreSQL Select CURRENT_DA TE;Note that for all of these function calls,no passed parameters are needed.10.

30、These next examples show how to find out what day a given date falls on:(Sunday)程序代码Microsoft SQL Server Select DATEPART(dw,GETDA TE()GO MySQL Select DAYNAME(CURDA TE();oracle Select TO_CHAR(SYSDA TE,Day)FROM dual;PostgreSQL Select DATE_PART(dow,date now);11.To determine how far away a date is from

31、the current date(or any other date for that matter),either in the future or in the past,use these examples 程序代码Microsoft SQL Server Select DATEDIFF(dd,1/1/01,GETDA TE()GO MySQL Select FROM_DA YS(TO_DAYS(CURDA TE()-TO_DAYS(2001-11-25);oracle Select TO_DATE(25-Nov-2000,dd-mon-yyyy)-TO_DATE(25-Aug-1969

32、,dd-mon-yyyy)FROM dual;PostgreSQL Select AGE(CURRENT_DA TE,25-Aug-1969);名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 14 页 -12.It is common procedure to retrieve a date in a different format mask(Mon,DD,YYYY;mm/dd/yy;dd/mm/yy;etc.).Here are some examples:程序代码Microsoft SQL Server Select CONVERT(V ARCHAR(11),GETDA T

33、E(),102)GO MySQL Select DATE_FORMA T(2001-11-25,%M%e,%Y);oracle Select TO_CHAR(SYSDA TE,dd-Mon-yyyy hh:mi:ss PM)FROM dual;PostgreSQL Select TO_CHAR(timestamp(CURRENT_DATE),dd-Mon-yyyy hh:mi:ss PM);13.String OperationsOften,an application may need to find one string within another string.This is one

34、way of performing this operation across the different vendors:返回结果为3 程序代码Microsoft SQL Server Select CHARINDEX(eat,great)GO MySQL Select POSITION(eat IN great);oracle Select INSTR(Great,eat)FROM dual;PostgreSQL Select POSITION(eat IN great);14 It is often necessary to trim trailing and leading space

35、s from an expression in an SQL operation:程序代码Microsoft SQL Server Select LTRIM(sql_in_a_nutshell),Select RTRIM(sql_in_a_nutshell ),Select LTRIM(RTRIM(sql_in_a_nutshell )GO MySQL Select LTRIM(sql_in_a_nutshell),Select RTRIM(sql_in_a_nutshell ),Select TRIM(sql_in_a_nutshell ),Select TRIM(BOTH FROM sql

36、_in_a_nutshell );oracle Select LTRIM(sql_in_a_nutshell),Select RTRIM(sql_in_a_nutshell ),名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 14 页 -TRIM(sql_in_a_nutshell )FROM dual;PostgreSQL Select TRIM(LEADING FROM sql_in_a_nutshell),TRIM(TRAILING FROM sql_in_a_nutshell ),TRIM(BOTH FROM sql_in_a_nutshell );15 The opp

37、osite of trimming spaces is to pad them into an expression.To pad in x number of trailing or leading spaces with the various vendors:程序代码Microsoft SQL Server Not supported MySQL Select LPAD(sql_in_a_nutshell,20,),/20 为总的个数 RPAD(sql_in_a_nutshell,20,);oracle Select LPAD(sql_in_a_nutshell,20,),RPAD(sq

38、l_in_a_nutshell,20,)FROM dual;PostgreSQL Select LPAD(sql_in_a_nutshell,20,),RPAD(sql_in_a_nutshell,20,);16 An operation similar to pad is to substitute characters within a string with other characters:程序代码Microsoft SQL Server returns wabbit_hunting_season Select STUFF(wabbit_season,7,1,_hunting_)GO

39、MySQL returns wabbit_hunting_season Select REPLACE(wabbit_season,it_,it_hunting_);oracle returns wabbit_hunting_season Select REPLACE(wabbit_season,it_,it_hunting_)FROM dual;PostgreSQL Select TRANSLA TE(wabbit_season,it_,it_hunting_);17Many times,a SQL statement must retrieve only a portion of a str

40、ing.The following examples show how to extract duck_season from the string wabbit_duck_season for each vendor:程序代码Microsoft SQL Server Select SUBSTRING(wabbit_duck_season,7,11)GO 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 14 页 -MySQL Select SUBSTRING(wabbit_duck_season,7,11);oracle Select SUBSTR(wabbit_duck_se

41、ason,7,11)FROM dual;PostgreSQL Select SUBSTR(wabbit_duck_season,7,11);18 Some vendors allow function calls that can structure an IF,THEN,ELSE result set within the query:程序代码Microsoft SQL Server Select CASE WHEN foo=hi THEN there WHEN foo=good THEN bye ELSE default END FROM t2 GO MySQL N/Aoracle Sel

42、ect DECODE (payments_info,CR,Credit,DB,Debit,null)FROM dual;PostgreSQL Select CASE WHEN foo=hi THEN there WHEN foo=good THEN bye ELSE default END FROM t2;程序代码Simple comparison operation CASE input_value WHEN when_condition THEN resulting_value n ELSE else_result_value END Boolean searched operation

43、CASE WHEN Boolean_condition THEN resulting_value 名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 14 页 -n ELSE else_result_expression END 19 Nulls OperationsNulls are sometimes tricky business.Sometimes a company process,such as a query or other data manipulation statement,must explicitly handle NULLs.These examples

44、 show how to return a value specified when a field or result is null:程序代码Microsoft SQL Server Select ISNULL(foo,V alue is Null)GO MySQL ifnull oracle Select NVL(foo,V alue is Null)FROM dual;PostgreSQL allows you to write a user-defined function to handle this feature N/A 20 Alternately,there may be

45、times when a NULL value is needed if a field contains a specific value:程序代码Microsoft SQL Server returns NULL when foo equates to Wabbits!Select NULLIF(foo,Wabbits!)GO MySQL N/A oracle Select DECODE(foo,Wabbits!,NULL)FROM dual;PostgreSQL Select NULLIF(foo,Wabbits!);Summary There are a great many func

46、tion calls that are universally supported by the ANSI standard and all the database vendors For more details on ANSI standard functions,check out our book,SQL in a Nutshell.Kevin Kline serves as the lead information architect for shared information services at Deloitte&Touche LLP.In addition to coau

47、thoring SQL in a Nutshell,Kevin is the coauthor of Transact-SQL Programming,also for OReilly&Associates.He coauthored Professional SQL Server 6.5 Administration(WROX Press),and is also the author of oracle CDE:Reference and Users Guide(Butterworth-Heinemann).He can be reached at .三、基本概念1、存储引擎名师资料总结-

48、精品资料欢迎下载-名师精心整理-第 13 页,共 14 页 -例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默 认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。选择如何存储和检索你的数据的这

49、种灵活性是MySQL 为什么如此受欢迎的主要原因。其它数据库系统(包括大多数商业选择)仅 支持一种类型的数据存储。遗憾的是,其它类型的数据库解决方案采取的“一个尺码满足一切需求”的方式意味着你要么就牺牲一些性能,要么你就用几个小时甚至几天的时间详细调整你的数据库。使用MySQL,我们仅需要修改我们使用的存储引擎就可以了MySQL的存储引擎:MyISAM:Mysql 的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务InnoDB:事务型数据库的首选引擎,支持ACID 事务,支持行级锁定BDB:源自 Berkeley DB,事务型数据库的另一种选择,支持 COMMIT和 ROLLBAC

50、K等其他事务特性Memory:所 有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql 重新启动时丢失Merge:将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用Archive:非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差Federated:将不同的Mysql 服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用 Cluster/NDB:高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用CSV:逻辑上由逗号分割数据的存储引擎BlackHole:黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继另外,Mysql 的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写自己的存储引擎。名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 14 页 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!