数据库的存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是插件式存储引擎,而其中最知名的就是 MyISAM 及 InnoDB。

  • 存储引擎的查看

  • 查看数据库可配置的存储引擎

    SHOW ENGINES;
  • 查看数据库正在使用的存储引擎

    show table status from 库 where name='表1';    #查看表1正在使用的存储引擎
    use 库;    #进入数据库
    show create table 表1;
  • 存储引擎的配置

  • 通过命令修改

    use 库;      #进入数据库
    alter table 表1 engine=MyISAM;       #修改存储引擎为MyISAM
    alter table 表2 engine=InnoDB;         #修改存储引擎为InnoDB
  • 通过配置文件修改(切记,仅对之后新建的表有用!)

    vim /etc/my.cnf
    ...
    ...
    [mysqld]
    default--storage-engine=MyISAM      //添加你要设为默认的存储引擎
  • 创建表时直接指定存储引擎
    use 库;    #进入库
    create table 表1(id int)engine=InnoDB;        #修改存储引擎为InnoDB
    create table 表2(id int)engine=MyISAM;       #修改存储引擎为MyISAM
    show create table 表;   #查看

存储引擎的特点介绍及适用场景

  • MyISAM特点介绍及适用场景
    MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。MyISAM主要特性有:

    1)可以把数据文件和索引文件放在不同目录。
    2)表级锁定形式,数据在更新时锁定整个表。
    3)数据库读写过程中相互阻塞。
    4)可以通过key_buffer_size来设置缓存索引。
    5)数据单独写入或读取 速度快占用资源少。
    6)不支持外键约束,只支持全文索引。
    7)建表时会生成三个文件,文件名均以表的名字开始。
    【 .frm文件存储表定义 | 数据文件的扩展名:.MYD(MYData) | 索引文件的扩展名:.MYI(MYIndex) 】

    适用场景:

    1)非事务型应用
    2)只读类应用
    3)空间类应用

  • InnoDB特点介绍及适用场景
    InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,其为MySQL数据库5.5及以后版本默认存储引擎。InnoDB主要特性有:

    1)InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询中,可以自由地将InnoDB类型的表和其他MySQL的表类型混合起来,甚至在同一个查询中也可以混合。
    2)InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹敌的。
    3)InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中。InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。
    4)InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键。
    5)InnoDB被用在众多需要高性能的大型数据库站点上。
    6)InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件。

    适用场景:

    MySQL5.7及以后版本已经支持全文索引以及空间函数。
    适用于大多数OLTP应用(On-Line Transaction Processing联机事务处理过程(OLTP)也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。

  • MyISAM及InnoDB的区别

    MyISAM 和 InnoDB 是许多人在使用MySQL时最常用的两个存储引擎,这两个各有优劣,视具体应用而定。基本的差别为:MyISAM 不支持事务处理等高级处理,强调的是性能,其执行速度比 InnoDB 更快,但是不提供事务支持,而 InnoDB 提供事务支持、外部键等高级数据库功能。

总而言之,如果数据表主要用来插入查询记录,则 MyISAM 能提供较高的处理效率;如果要提供提交、回滚、崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制InnoDB 是一个好的选择。

转载于:https://blog.51cto.com/13625676/2153117

MySQL 数据库常用存储引擎的特点相关推荐

  1. mysql数据库常用存储引擎的区别

    InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制.如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势.如果需要频繁的更新.删除操 ...

  2. mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...

    概述 mysql数据库存储引擎为MyISAM的时候,在大访问量的情况下数据表有可能会出现被锁的情况,这就会导致用户连接网站时超时而返回502,此时就需要MySQL数据库MyISAM存储引擎转为Inno ...

  3. MySQL数据库:存储引擎

    一.什么是存储引擎: 存储引擎是MylSQL的核心,是数据库底层软件组织,数据库使用存储引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁级别.事务等功能.存储引擎是基 ...

  4. MySQL数据库的存储引擎

    目录 1.存储引擎概念 2.常用存储引擎 2.1MyISAM 2.1.1MyISAM的特点 2.1.2MyISAM表支持3种不同的存储格式: 2.1.3MyISAM适用的生产场景举例 2.2InnoD ...

  5. Mysql数据库之存储引擎

    一.存储引擎概念 MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制.索引技巧.锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎. ...

  6. mysql的常用存储引擎_MySQL常见的三种存储引擎

    Ok,我们知道了,引擎就是一个程序的核心组件. 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有O ...

  7. mysql数据库federated存储引擎

    1.概述 msyql数据库federated存储引擎是本场端访问.修改远端mysql数据库表数据,与oracle数据库database link类似,但也存在着如下差异: 每个federated表都有 ...

  8. MySQL数据库MyISAM存储引擎转为Innodb

    之前公司的数据库存储引擎全部为MyISAM,数据量和访问量都不是很大,所以一直都没什么问题.但是最近出现了MySQL数据表经常被锁的情况,直接导致了用户连接网站时超时而返回502,于是决定把存储引擎转 ...

  9. MySQL数据库常见存储引擎(一)

    熟悉mysql数据库的朋友,肯定会喜欢mysql强大的插件式存储引擎,能够支持太多存储引擎,当目前的存储引擎不能满足你的需求时,你可以根据自己的需求选择合适的引擎,将相关的文件拷贝到相关路径,甚至不需 ...

最新文章

  1. Windows 10下编译安装Hadoop2.6
  2. node.js浅入深出---fs模块的stat判断是否为文件夹
  3. 8.1 概述-机器学习笔记-斯坦福吴恩达教授
  4. 字符串匹配KMP算法中Next[]数组和Nextval[]数组求法
  5. 最新版 VMware 安装,虚拟机安装, Ubuntu可视化linux系统安装
  6. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (5) - 流水线前端传统译码器
  7. iOS学习01C语言数据类型
  8. 基于Jsp的简单论坛(BBS)的设计与实现(附代码)
  9. matlab学生信息按成绩排列,基于Matlab的学生成绩综合分析
  10. 网站搭建教程(怎么建网站详细步骤)
  11. bat的使用技巧汇总
  12. java面试题学生表成绩表老师表_经典的SQL语句面试题
  13. CFBI中国金融科技与区块链创新峰会2017年度盛会
  14. 写在19年初的后端社招面试经历(两年经验): 蚂蚁 头条 PingCAP
  15. Photoshop学习(二十):画面的浮雕效果
  16. QtCreator添加文件夹
  17. PermissionError: [Errno 13] Permission denied:报错解决
  18. 江苏事业单位计算机类结构化面试,2017江苏事业单位结构化面试常见问题及应对方法...
  19. 局域网内抢网速_为什么4G的网速越来越慢?
  20. “银行家算法”讲解,在前端表格中利用自定义公式实现“四舍六入五成双”

热门文章

  1. boost::hana::suffix用法的测试程序
  2. boost::gil::pixels_are_compatible用法的测试程序
  3. boost::fusion::insert_range用法的测试程序
  4. boost::coroutine模块实现layout的测试程序
  5. Boost::context模块callcc的jump测试程序
  6. boost::callable_traits添加可变参数的测试程序
  7. VTK:PolyData之FieldData
  8. VTK:PolyData之ColoredPoints
  9. VTK:相互作用之SelectAVertex
  10. VTK:图片之ImageOrder