Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > MySQL存储引擎和数据类型
【标  题】:MySQL存储引擎和数据类型
【关键字】:MySQL
【来  源】:http://blog.csdn.net/ligaofeng/archive/2007/04/10/1558659.aspx

MySQL存储引擎和数据类型

Your Ad Here  
MySQL支持许多不同的存储引擎,有时候也称作表格类型。这就意味着对这些表的内部实现可以有选择。数据库每个表可以使用不同的存储引擎,而且可以轻松地对它们进行转换。
我在我本机上运行“mysql>show engines”命令(如果运行的是MySQL4.1.2之前的版本,请执行mysql>show variables like ‘have_%’命令查看)查看MySQL服务器可以使用哪些存储引擎,显示结果如下:
Engine
Support
Comment
MyISAM
DEFAULT
Default engine as of MySQL 3.23 with great perform...
MEMORY
YES
Hash based, stored in memory, useful for temporary...
InnoDB
YES
Supports transactions, row-level locking, and fore...
BerkeleyDB
NO
Supports transactions and page-level locking
BLACKHOLE
NO
/dev/null storage engine (anything you write to it...
EXAMPLE
NO
Example storage engine
ARCHIVE
YES
Archive storage engine
CSV
NO
CSV storage engine
ndbcluster
NO
Clustered, fault-tolerant, memory-based tables
FEDERATED
NO
Federated MySQL storage engine
MRG_MYISAM
YES
Collection of identical MyISAM tables
ISAM
NO
Obsolete storage engine
InnoDB表是如下情况的理想引擎:
l         更新密集的表
l         事务
l         自动灾难恢复
MyISAM表是如下情况的理想引擎:
l         选择密集的表
l         插入密集的表
选择密集的表
插入密集的表
MyISAM静态:如果所有表列的大小都是表态的(即不使用xBLOB、xTEXT或VARCHAR数据类型),MySQL就会自动使用静态MyISAM格式
优点:性能高,
缺点:表占用空间相对比较大
MyISAM动态:如果所有表列(即使有一列)定义为动态的(使用xBLOB、xTEXT或VARCHAR数据类型),MySQL就会自动使用动态MyISAM格式
优点:占用空间相对比较小
缺点:性能低有时会产生碎片(如某个字段的内容发生变化时)
补救方法:尽可能使用静态类型及使用[LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...命令进行优化
OPTIMIZE命令使用情况:如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新利用未使用的空间,并整理数据文件的碎片。
在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次即可,只对特定的表运行。
OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。
对于MyISAM表,OPTIMIZE TABLE按如下方式操作:
1.  如果表已经删除或分解了行,则修复表。
2.  如果未对索引页进行分类,则进行分类。
3.  如果表的统计数据没有更新(并且通过对索引进行分类不能实现修复),则进行更新。
对于BDB表,OPTIMIZE TABLE目前被映射到ANALYZE TABLE上。对于InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE上,这会重建表。重建操作能更新索引统计数据并释放成簇索引中的未使用的空间。
其他引擎及更详细信息请查看mysql手册
 
嵌套表,索引组织表(IOT):【上一篇】
Oralcle中特殊字符的处理:【下一篇】
【相关文章】
  • mysql5中遇到的字符集问题以及解决办法
  • Apache、Tomcat、mysql与Java Web开发环境学习记录(20070410)
  • Linux平台下建立Oracle透明數據網關,訪問MySQL
  • MySQLdb 操作数据库时的中文问题
  • mysql cluster 性能测试之响应时间测试用例, 请大家指导, 万分感谢!
  • openvpn + mysql
  • linux下mysql5安装日志
  • mysql5 master slave安装配置日志
  • MySQL默认字符编码的设置
  • PHP与MYSQL交互函数表学习笔记
  • 【随机文章】
  • 可是这个姑姑为什么在我父亲‘五七’的时候没有来
  • 第一天上午的测试
  • 正则表达式-续集
  • 联华偷拳
  • [Java Puzzlers]表达式随想
  • 会得罪闪客帝国吧? hope200201822002
  • 拨开SDO(Service Data Object)唬人的光环
  • QQ连连看外挂 追风逐月版
  • JAVA是什么
  • 解决死锁一例
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.