当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-01-25 22:43:00  来源:本站整理

MySQL各存储引擎的辨别及其启动办法[MySQL防范]

赞助商链接



  本文“MySQL各存储引擎的辨别及其启动办法[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
 

存储引擎是什么?

MySQL中的数据用各种差别的技术存储在文件(大概内存)中.这些技术中的每一种技术都利用差别的存储机制、索引本领、锁定水平并且终究供应遍及的差别的功效和本领.通过挑选差别的技术,你可以得到额外的速度大概功效,从而改进你的利用的整体功效.

比方,假如你在研究大量的暂时数据,你大概需求利用内存存储引擎.内存存储引擎可以在内存中存储全部的表格数据.又大概,你大概需求一个支持事件处理的数据库(以确保事件处理不成功时数据的回退本领).

这些差别的技术以及配套的相关功效在MySQL中被称作存储引擎(也称作表范例).MySQL默许配置了很多差别的存储引擎,可以预先设置大概在MySQL服务器中启用.你可以挑选实用于服务器、数据库和表格的存储引擎,以便在挑选若何存储你的信息、若何检索这些信息以及你需求你的数据结合什么性能和功效的时刻为你供应最大的机动性.

挑选若何存储和检索你的数据的这种机动性是MySQL为什么如此受欢送的主要缘由.别的数据库系统(包含大大都商业挑选)仅支持一种范例的数据存储.遗憾的是,别的范例的数据库办理筹划采纳的“一个尺码满意一切需求”的方法意味着你要末就牺牲一些性能,要末你就用几个小时乃至几天的时间具体调整你的数据库.利用MySQL,我们仅需求改正我们利用的存储引擎便可以了.

在这篇文章中,我们不预备集合谈论差别的存储引擎的技术方面的问题(固然我们不可避免地要研究这些因素的某些方面),相反,我们将集合介绍这些差别的引擎辨别最适应哪类需求和若何启用差别的存储引擎.为了实现这个目的,在介绍每一个存储引擎的具体情形之前,我们必必要理解一些基本的问题.

若何肯定有哪些存储引擎可用

你可以在MySQL(假定是MySQL服务器4.1.2以上版本)中利用显示引擎的号令得到一个可用引擎的列表.

 

mysql> show engines;
+------------+---------+----------------------------------------------------+
| Engine | Support | Comment |
+------------+---------+-----------------------------------------------------+
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance |
| HEAP | YES | Alias for MEMORY |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables |
| MERGE | YES | Collection of identical MyISAM tables |
| MRG_MYISAM | YES | Alias for MERGE |
| ISAM | NO | Obsolete storage engine, now replaced by MyISAM |
| MRG_ISAM | NO | Obsolete storage engine, now replaced by MERGE |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys |
| INNOBASE | YES | Alias for INNODB |
| BDB | NO | Supports transactions and page-level locking |
| BERKELEYDB | NO | Alias for BDB |
| NDBCLUSTER | NO | Clustered, fault-tolerant, memory-based tables |
| NDB | NO | Alias for NDBCLUSTER |
| EXAMPLE | NO | Example storage engine |
| ARCHIVE | NO | Archive storage engine |
| CSV | NO | CSV storage engine |
+------------+---------+-------------------------------------------------------+

16 rows in set (0.01 sec)   这个表格显示了可用的数据库引擎的全部名单以及在当前的数据库服务器中能否支持这些引擎.

关于MySQL 4.1.2从前版本,可以利用mysql> show variables like "have_%"(显示近似“have_%”的变量):

 

mysql> show variables like "have_%"; 
+------------------+----------+ 
| Variable_name | Value | 
+------------------+----------+ 
| have_bdb | YES | 
| have_crypt | YES | 
| have_innodb | DISABLED | 
| have_isam | YES | 
| have_raid | YES | 
| have_symlink | YES | 
| have_openssl | YES | 
| have_query_cache | YES | 
+------------------+----------+ 
8 rows in set (0.01 sec)

你可以通过改正设置脚本中的选项来设置在MySQL安装软件中可用的引擎.假如你在利用一个预先包装好的MySQL二进制公布版软件,那么,这个软件就包含了常用的引擎.但是,需求指出的是,假如你要利用某些不常用的引擎,分外是CSV、RCHIVE(存档)和BLACKHOLE(黑洞)引擎,你就需求手工重新编译MySQL源码 .

利用一个指定的存储引擎

你可以利用很多办法指定一个要利用的存储引擎.最简单的办法是,假如你喜好一种能满意你的大大都数据库需求的存储引擎,你可以在MySQL设置文件中设置一个默许的引擎范例(利用storage_engine 选项)大概在启动数据库服务器时在号令行背面加上--default-storage-engine或--default-table-type选项 .

更机动的方法是在随MySQL服务器公布同时供应的MySQL客户端时指定利用的存储引擎.最直接的方法是在成立表时指定存储引擎的范例,向下面这样:

 

  CREATE TABLE mytable (id int, title char(20)) ENGINE = INNODB

你还可以改变现有的表利用的存储引擎,用以下语句:

 

  ALTER TABLE mytable ENGINE = MyISAM

但是,你在以这种方法改正表格范例的时刻需求非常细心,因为对不支持一样的索引、字段范例大概表大小的一个范例举行改正大概使你丧失数据.假如你指定一个在你的当前的数据库中不存在的一个存储引擎,那么就会成立一个MyISAM(默许的)范例的表.


  以上是“MySQL各存储引擎的辨别及其启动办法[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Windows 搭配 IIS7 PHP MySQL 环境
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • mysql数据库插入速度和读取速度的调整记录
  • MySQL Order By索引优化办法
  • MySQL Order By用法分享
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
  • MySQL Order By Rand()效率解析
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .