金色的骷髅 发表于 2015-1-16 20:12:32

绝无经由的怎样挑选符合的MySQL存储引擎

尽管MySQL也有一个认证培训项目,但是它的培训却要比Oracle或MS-SQL相差很远。尽管有的使用MySQL的用户表示,MySQL很容易上手,但是对于具有企业级数据库需求的用户来说,本文将报告MySQL中多种存储引擎的特性,但愿能够给你在选择MySQL存储引擎时带来匡助。
MySQL有多种存储引擎:
MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
MySQL撑持数个存储引擎作为对分歧表的范例的处置器。MySQL存储引擎包含处置事件平安表的引擎和处置非事件平安表的引擎:
◆MyISAM办理非事件表。它供应高速存储和检索,和全文搜刮才能。MyISAM在一切MySQL设置里被撑持,它是默许的存储引擎,除非你设置MySQL默许利用别的一个引擎。
◆MEMORY存储引擎供应“内存中”表。MERGE存储引擎同意汇合将被处置一样的MyISAM表作为一个独自的表。就像MyISAM一样,MEMORY和MERGE存储引擎处置非事件表,这两个引擎也都被默许包括在MySQL中。
正文:MEMORY存储引擎正式地被断定为HEAP引擎。
◆InnoDB和BDB存储引擎供应事件平安表。BDB被包括在为撑持它的操纵体系公布的MySQL-Max二进制分发版里。InnoDB也默许被包含在所有MySQL5.1二进制分发版里,你能够依照喜欢经由过程设置MySQL来同意或克制任一引擎。
◆EXAMPLE存储引擎是一个“存根”引擎,它不做甚么。你能够用这个引擎创立表,但没无数据被存储于个中或从个中检索。这个引擎的目标是服务,在MySQL源代码中的一个例子,它演示申明怎样入手下手编写新存储引擎。一样,它的次要乐趣是对开辟者。
◆NDBCluster是被MySQLCluster用来完成支解到多台盘算机上的表的存储引擎。它在MySQL-Max5.1二进制分发版里供应。这个存储引擎以后只被linux,Solaris,和MacOSX撑持。在将来的MySQL分发版中,我们想要增加别的平台对这个引擎的撑持,包含Windows。
◆ARCHIVE存储引擎被用来无索引地,十分小地掩盖存储的大批数据。
◆CSV存储引擎把数据以逗号分开的格局存储在文本文件中。
◆BLACKHOLE存储引擎承受但不存储数据,而且检索老是前往一个空集。
◆FEDERATED存储引擎把数据存在远程数据库中。在MySQL5.1中,它只和MySQL一同事情,利用MySQLCClientAPI。在将来的分发版中,我们想要让它利用别的驱动器或客户端毗连办法毗连到别的的数据源。
当你创立一个新表的时分,你能够经由过程增加一个ENGINE或TYPE选项到CREATETABLE语句来告知MySQL你要创立甚么范例的表:
CREATETABLEt(iINT)ENGINE=INNODB;
CREATETABLEt(iINT)TYPE=MEMORY;
固然TYPE仍旧在MySQL5.1中被撑持,如今ENGINE是首选的术语。
怎样选择最合适你的存储引擎呢?
下述存储引擎是最经常使用的:
◆MyISAM:默许的MySQL插件式存储引擎,它是在Web、数据仓储和其他使用情况下最常利用的存储引擎之一。注重,经由过程变动STORAGE_ENGINE设置变量,可以便利地变动MySQL服务器的默许存储引擎。
◆InnoDB:用于事件处置使用程序,具有浩瀚特征,包含ACID事件撑持。
◆BDB:可替换InnoDB的事件引擎,撑持COMMIT、ROLLBACK和其他事件特征。
◆Memory:将一切数据保留在RAM中,在必要疾速查找援用和其他相似数据的情况下,可供应极快的会见。
◆Merge:同意MySQLDBA或开辟职员将一系列同等的MyISAM表以逻辑体例组合在一同,并作为1个工具援用它们。关于诸如数据仓储等VLDB情况非常合适。
◆Archive:为大批很少援用的汗青、回档、或平安审计信息的存储和检索供应了完善的办理计划。
◆Federated:可以将多个分别的MySQL服务器链接起来,从多个物理服务器创立一个逻辑数据库。非常合适于散布式情况或数据集市情况。
◆Cluster/NDB:MySQL的簇式数据库引擎,特别合适于具有高功能查找请求的使用程序,这类查找需求还请求具有最高的一般事情工夫和可用性。
◆Other:其他存储引擎包含CSV(援用由逗号离隔的用作数据库表的文件),Blackhole(用于一时克制对数据库的使用程序输出),和Example引擎(可为疾速创立定制的插件式存储引擎供应匡助)。
请记着,关于全部服务器或计划,你其实不必定要利用不异的存储引擎,你能够为计划中的每一个表利用分歧的存储引擎,这点很主要。
mysql>showengines;
+------------+---------+----------------------------------------------------------------+
|Engine|Support|Comment|
+------------+---------+----------------------------------------------------------------+
|MyISAM|DEFAULT|DefaultengineasofMySQL3.23withgreatperformance|
|MEMORY|YES|Hashbased,storedinmemory,usefulfortemporarytables|
|InnoDB|YES|Supportstransactions,row-levellocking,andforeignkeys|
|BerkeleyDB|NO|Supportstransactionsandpage-levellocking|
|BLACKHOLE|NO|/dev/nullstorageengine(anythingyouwritetoitdisappears)|
|EXAMPLE|NO|Examplestorageengine|
|ARCHIVE|NO|Archivestorageengine|
|CSV|NO|CSVstorageengine|
|ndbcluster|NO|Clustered,fault-tolerant,memory-basedtables|
|FEDERATED|NO|FederatedMySQLstorageengine|
|MRG_MYISAM|YES|CollectionofidenticalMyISAMtables|
|ISAM|NO|Obsoletestorageengine|
+------------+---------+----------------------------------------------------------------+
MySQL数据库归MySQLAB公司所有,但是这个软件是开源的,有一个MySQL学习教程可以免费下载。稍俱常识的新入门者都可以轻松实现在一个常见硬件上安装和配置MySQL。

蒙在股里 发表于 2015-1-18 10:10:41

很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的工具,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。

第二个灵魂 发表于 2015-1-21 20:07:46

至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。

若相依 发表于 2015-1-30 22:12:22

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

冷月葬花魂 发表于 2015-2-6 16:18:18

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

莫相离 发表于 2015-2-17 05:03:06

发几份SQL课件,以飨阅者

变相怪杰 发表于 2015-3-5 16:11:26

需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。

因胸联盟 发表于 2015-3-12 10:27:47

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..

活着的死人 发表于 2015-3-19 20:27:27

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书
页: [1]
查看完整版本: 绝无经由的怎样挑选符合的MySQL存储引擎