MySQL存储引擎和数据类型
来源:互联网 发布:大学网络推广策划书 编辑:程序博客网 时间:2024/04/25 15:34
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手册
- MySQL存储引擎和数据类型
- MySQL存储引擎和数据类型
- mysql 存储引擎,数据类型和运算符
- mysql(二)存储引擎和数据类型
- 一步一步学MySQL----3 MySQL中的存储引擎和数据类型
- 一步一步学MySQL----19 MySQL中的存储引擎和数据类型
- MySQL 的学习(三:MySQL存储引擎和数据类型)
- MySQL存储引擎与数据类型
- 二、MySQL数据库中存储引擎和数据类型
- mysql基本数据类型和引擎
- MySql基础知识、存储引擎与常用数据类型
- MySql基础知识、存储引擎与常用数据类型
- MySQL学习笔记2---MySQL数据库的存储引擎和数据类型
- MySQL入门经典-----2、如何存储和获取数据(MySQL存储引擎、数据类型和运算符)
- MySQL体系结构和存储引擎
- MySQL体系结构和存储引擎
- Mysql体系结构和存储引擎
- MySql体系结构和存储引擎
- Java内部的一些简介
- 应用整合中SSO的技术实现
- JS通用表单验证函数
- SQL 里面如何修改表名
- [求助]关于snort的插件问题
- MySQL存储引擎和数据类型
- 正则表达式收集
- 数据集的使用方法和技巧
- Web和Ftp服务器管理配置完全解析
- 期货交易的流程
- 11
- Hibernate中关于get()和load()方法检索的区别
- java的多态性
- 三种分页方式效率的简单测试