mysql系列(三) mysql存储引擎简介

序号名称链接地址
1 mysql系列(一) centos7 安装msqlhttps://blog.csdn.net/qq_38130094/article/details/103529535
2mysql系列(二)mysql简介之逻辑架构/锁粒度/事务/死锁/事务日志/MVCChttps://blog.csdn.net/qq_38130094/article/details/103549194
3mysql系列(三) mysql存储引擎简介https://blog.csdn.net/qq_38130094/article/details/103599497
4mysql系列(四) mysql数据库设计优化https://blog.csdn.net/qq_38130094/article/details/103551778
5 mysql系列(五) mysql索引详细解析及使用https://blog.csdn.net/qq_38130094/article/details/103553971
6mysql系列(六)mysql 慢日志查询(pt-query-digest)/如何单条SQL分析和Explain及trace工具https://blog.csdn.net/qq_38130094/article/details/103551705
7mysql系列(七)mysql 主从复制和mysql查询优化https://blog.csdn.net/qq_38130094/article/details/103603586

1.InnoDB引擎: 

InnoDB是一种兼顾了高可靠性和高性能的通用存储引擎。在MySQL 5.7中,InnoDB是默认的MySQL存储引擎。除非配置了其他默认存储引擎,否则发出CREATE TABLE不带ENGINE= 子句的语句将创建一个InnoDB表。InnoDB表是基于聚簇索引建立的,其索引结构和MySQL的其他存储引擎有很大区别。内部做了很多优化,包括从磁盘读取数据时采用的可预测性预读。

InnoDB存储引擎的优势:(重要)

  1. 他的DML操作遵循ACID模型,并具有提交,回滚和奔溃恢复功能的事物,以保护用户数据;
  2. 行级锁和Oracle风格的一致性读取可提高多用户并发性和性能;
  3. InnoDB表格将您的数据排列在磁盘上以基于主键优化查询 。每个 InnoDB表都有一个称为聚集索引的主键索引,该索引数据结构以最小化主键查找的 I/O;
  4. 维护数据完整性, InnoDB支持FOREIGN KEY约束。使用外键检查插入,更新和删除操作,以确保它们不会导致不同表之间的不一致;
特征支持
B树索引
备份/时间点恢复(在服务器中而不是在存储引擎中实现。)
集群数据库支持没有
聚集索引
压缩数据
资料快取
加密数据是(通过加密功能在服务器中实现;在MySQL 5.7和更高版本中,支持静态数据表空间加密。)
外键支持
全文搜索索引是(MySQL 5.6和更高版本提供InnoDB对FULLTEXT索引的支持。)
地理空间数据类型支持
地理空间索引支持是(MySQL 5.7和更高版本提供InnoDB对地理空间索引的支持。)
哈希索引否(InnoDB在内部将哈希索引用于其自适应哈希索引功能。)
索引缓存
锁定粒度
MVCC
复制支持(在服务器中而不是在存储引擎中实现。)
储存限制64TB
T树索引没有
交易次数
更新数据字典的统计信息

2.MyISAM引擎:

在MySQL5.1版本之前,MyISAM是默认的存储引擎。MyISAM提供了大量的特性,包括全文检索、压缩、空间函数等, 但MyISAM不支持事务和行级锁,而有一个缺陷就是崩溃后无法安全恢复。虽然MyISAM有这样的缺陷,但并非一无是处。 对于只读的数据,或者表比较小,可以忍受修复操作,则依然可以继续使用MyISAM引擎;

MyISAM基于较旧(且不再可用)的ISAM存储引擎,但具有许多有用的扩展

MyISAM特性

  1.  加锁与并发:MyISAM对整张表加锁,而不是针对行。读取时会对需要读到的所有表加共享锁,写入则对表加排它锁。 在表有读取查询的同时,也可以往表中插入新的记录(被称为并发插入)。
  2. 修复:MySQL可以对MyISAM表进行手工或者自动检查和修复操作,但这里所说的修复和事务恢复以及崩溃修复是不同的概念。执行表的修复可能导致一些数据丢失,而且修复操作非常慢。可以通过CHECK TABLE tableName检查表的错误,如果有错误可以通过执行REPAIR TABLE tableName进行修复。
  3. 索引特性:对于MyISAM表,即使是BLOB和TEXT等长字段,也可以基于前500个字符创建索引。MyISAM也支持全文索引,这是一种基于分词创建的索引,可以支持复杂的查询。
  4. 延迟更新索引键:创建MyISAM表的时候,如果指定了DELAY_KEY_WRITE选项,在每次修改执行完成时,不会立刻 将修改的索引数据写入磁盘,而是会写到内存中的键缓冲区,只有在清理键缓冲区或者关闭表的时候才会将对应的索引块写 入到磁盘。可以极大的提升写入性能,但是数据库或者主机崩溃时会造成索引损坏,需要执行修复操作。
特征支持
B树索引
备份/时间点恢复(在服务器中而不是在存储引擎中实现。)
集群数据库支持没有
聚集索引没有
压缩数据是(仅在使用压缩行格式时才支持压缩MyISAM表。将压缩行格式与MyISAM一起使用的表是只读的。)
资料快取没有
加密数据是(通过加密功能在服务器中实现。)
外键支持没有
全文搜索索引
地理空间数据类型支持
地理空间索引支持
哈希索引没有
索引缓存
锁定粒度
MVCC没有
复制支持(在服务器中而不是在存储引擎中实现。)
储存限制256TB
T树索引没有
交易次数没有
更新数据字典的统计信息

3.Memory引擎      

MEMORY存储引擎(以前称为 HEAP)创建具有存储在存储器中的内容的专用的表。由于数据容易受到崩溃,硬件问题或电源中断的影响,因此只能将这些表用作临时工作区或只读缓存,以存储从其他表中提取的数据;

应用场景:

  1. 涉及瞬态,非关键数据的操作,例如会话管理或缓存。当MySQL服务器停止或重新启动时,MEMORY表中的数据将丢失。
  2. 内存中存储可实现快速访问和低延迟。数据量可以完全容纳在内存中,而不会导致操作系统换出虚拟内存页面。
  3. 只读或只读的数据访问模式(有限的更新)。
  4. NDB群集提供MEMORY与具有更高性能级别的引擎相同的功能 ,并提供以下功能不可用的其他功能 MEMORY: 行级锁定和多线程操作可减少客户端之间的争用。
  5. 即使包含写的语句混合也具有可伸缩性。
  6. 可选的磁盘支持操作,可确保数据持久性。 无共享架构和多主机操作,没有单点故障,可实现99.999%的可用性。
  7. 跨节点自动数据分发;应用程序开发人员无需制定自定义分片或分区解决方案。
  8. 不支持可变长度数据类型(包括 BLOB和 TEXT) MEMORY。

 

修改表的存储引擎    

1.ALTER TABLE tableName ENGINE = InnoDB 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值