mysql 存储引擎InnoDB和MyISAM详解

存储引擎 简介

  1. 存储引擎通俗的说就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
  2. 因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。
  3. Oracle和SQL Server等数据库只有一种存储引擎,所有数据存储管理机制都是一样的;而MySql数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。

MySQL常用引擎

  • MySQL 中目前广泛使用的是 MyISAM 和 InnoDB 两种引擎
  • 当然还有一种不怎么常用的MEMORY存储引擎

InnoDB

  • InnoDB 在 MySQL 5.5 及以后成为默认索引,它的特点是:
  1. 支持行锁,采用 MVCC 来支持高并发
  2. 支持事务
  3. 支持外键
  4. 支持崩溃后的安全恢复
  5. 不支持全文索引
  6. InnoDB 是一个事务型存储引擎,为用户操作非常大的数据存储提供了一个强大的解决方案,已经被很多互联网公司使用。
  • 在以下场合下,使用InnoDB是最理想的选择:
  1. 更新密集的表:InnoDB存储引擎特别适合处理多重并发的更新请求。
  2. 事务:InnoDB 存储引擎是支持事务的标准MySQL存储引擎。
  3. 自动灾难恢复:与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。
  4. 外键约束:MySQL支持外键的存储引擎只有InnoDB。
  5. 支持自动增加列 AUTO_INCREMENT 属性。

MyISAM

  • MyISAM 引擎是 MySQL 5.1 及之前版本的默认引擎,它的特点是:
  1. 不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁
  2. 不支持事务
  3. 不支持外键
  4. 不支持崩溃后的安全恢复
  5. 在表有读取查询的同时,支持往表中插入新纪录
  6. 支持 BLOB 和 TEXT 的前500个字符索引,支持全文索引
  7. 支持延迟更新索引,极大提升写入性能
  8. 对于不会进行修改的表,支持压缩表,极大减少磁盘空间占用

不常用的MEMORY

  • 其特点是:
  1. 所有数据都是存储在内存中
  2. 数据的处理速度快,但安全性不高
  3. 对表大小有要求,不能建太大的表

查看mysql支持的所有存储引擎

  • cmd:mysql -uroot -p 进入数据库来查看
show engines;

在这里插入图片描述

查看mysql默认存储引擎

show variables like '%storage_engine%';

在这里插入图片描述

修改mysql存储引擎为InnoDB

  1. 通过对比MySQL常用存储引擎后,发现Java开发,其实主要就是使用InnoDB存储引擎,因为我们需要它支持事务以及设置外键等操作。
  2. 实际开发中也会出现安装了不同版本的MySQL后,像平时一样使用Navicat为数据库表设置外键时,发现居然一点保存就自动消失了,反正就是死活不成功,后面一查才发现数据库使用的是MyISAM存储引擎。
  3. 修改MySQL默认存储引擎,只需要修改其配置文件的一行配置即可。
  4. 下面这样修改成功后,则以后无论MySQL是否重新启动服务,都会永久修改,想要采用哪种存储引擎时,则只需修改为对应的值即可。
  5. 注意:如果数据库之前使用的是MyISAM存储引擎,现在改为了INNODB,则数据库之前所建的表仍然采用的是之前的MyISAM存储引擎,后面新建的表则会重新采用新的INNODB存储引擎。
  • 修改步骤:
  1. 停掉mysql服务
  2. linux系统中:找到/etc/my.cnf,修改配置文件中的:default-storage-engine=InnoDB(没有时,增加即可)
    windowns系统中:找到安装目录\mysql/my.ini,修改配置文件:default-storage-engine=InnoODB(没有时,增加即可)
  3. 然后重启mysql服务即可。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值