MYSQL系列-Mysql存储引擎选择

MYSQL系列-Mysql存储引擎选择

 

//查看当前数据库支持的存储引擎
show engines \G;
创建表的时候可以通过engine=MyISAM指定存储引擎

 

MyISAM:
1、MYISAM不支持事务也不支持外键,其优势在于访问速度快,对事务完整性没有要求或者以select、insert为主的应用基本都可以使用MyISAM引擎。
2、MyISAM的表可能会损坏,可以使用check table语句来检查MyISAM表的健康,并可以使用repair table语句修复一个损坏的MyISAM表。
    check语法:
    CHECK TABLE tb_name[,tbl_name] ... [option] ...
    option= {QUICK | FAST | MEDIUM | EXTENDED | CHANGED} 
  QUICK:   不扫描行,不检查错误的链接
  FAST:    只检查没有被正确关闭的表。
  CHANGED: 只检查上次检查后被更改的表,和没有被正确关闭的表。
  MEDIUM:  扫描行,以验证被删除的链接是有效的。也可以计算各行的关键字校验和,并使用计算出的校验和验证这一点。
  EXTENDED:对每行的所有关键字进行一个全面的关键字查找。这可以确保表是100%一致的,但是花的时间较长。
  mysql> check table t1;//显示信息一般是OK证明没有问题
  +---------+-------+----------+----------+
  | Table   | Op    | Msg_type | Msg_text |
  +---------+-------+----------+----------+
  | test.t1 | check | status   | OK       |
  +---------+-------+----------+----------+
3、MyISAM支持三种不同的存储格式
  静态表、动态表、压缩表

InnoDB:
1、这是Mysql5.7默认的存储引擎,有很多特性在官方文档上可以查到,主要使用的就是InnoDB的引擎。
  InnoDB引擎支持事务和外键,
2、在导入多表数据时,如果存在外键的话会检查导入的数据,因此这是可以先暂时关闭外键约束来加快处理速度,关闭命令是:
  SET FOREIGN_KEY_CHECKS=0; 执行完毕之后再把外键约束打开:SET FOREIGN_KEY_CHECKS=1;
3、对于InnoDB类型的表,外键信息可以使用show create table或者show table status命令显示。

MEMORY:
MEMORY存储引擎使用存在于内存中的内容来创建表,每个MEMORY实际对应一个磁盘文件。MEMORY的访问非常快,并且使用HASH索引
给MEMORY创建索引时可以指定使用HASH还是BTREE索引。MEMORY引擎主要用于哪些内容变化不频繁的代码表,或者作为统计操作的中间代码表。

MERGE:
MERGE引擎是一组MyISAM表的组合,这些MyISAM表的表结构必须完全相同,对MERGE表的操作实际上是对MyISAM表的操作。
......

存储引擎的选择需要根据应用系统的实际情况,对于初学者,入门MySql的人员可以简单了解,具体应用时需要参考文档。

 

 

 

 

 

Mysql5.x手册 http://doc.mysql.cn/
Mysql官网 http://dev.mysql.com/
Mysql5.7参考手册 http://dev.mysql.com/doc/refman/5.7/en/
其他参考手册
CSDN-Mysql知识库

author: liuning

posted on 2016-05-25 16:34  随风浪子的博客  阅读(281)  评论(0编辑  收藏  举报

导航