加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL进阶之体系结构知识要素

发布时间:2022-02-16 17:59:17 所属栏目:MySql教程 来源:互联网
导读:这篇文章将为大家详细讲解有关MySQL进阶之体系结构知识点,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 5 MySQL体系结构 下面我们选一些比较常用的存储引擎进行简单的说明,mysql所使用的存储引擎会对数据库的性能
       这篇文章将为大家详细讲解有关MySQL进阶之体系结构知识点,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
 
5 MySQL体系结构
  
      下面我们选一些比较常用的存储引擎进行简单的说明,mysql所使用的存储引擎会对数据库的性能产生直接的影响,还希望各位能仔细的了解存储引擎的一些特点,完了之后才使用存储引擎。
 
5.1 MyISAM
 
     MyISAM在MySQL5.5之前版本是默认的存储引擎。由于这个原因,还有很多服务器在使用MyISAM这个存储引擎。同时,MyISAM目前是很多系统表,临时表所使用的存储引擎,这里说的临时表不是我们通过create table创建出来的表,是指在排序、分组等操作中,当数量超过一定的大小之后,有查询优化器建立的临时表。
MyISAM存储引擎是由MYD和MYI组成,MYD是数据文件的扩展名,MYI是索引文件的扩展名,这个存储引擎是将表存储在以这两个为扩展名的数据文件和索引文件中。
 MySQL进阶之体系结构知识要素
特性:
 
并发性与锁级别
MyISAM使用的是表级锁,并不是行级锁,这也就意味着对表中的数据进行修改时,需要对整个表进行加锁,而在对表的读取时也对所有的表加共享锁,从这里我们可以看到,使用MyISAM做引擎的表读取和写入两种操作是互斥的。由此可以看到MyISAM对于读写的并发操作并不会很好。如果只对于只读取操作的话,就并发性而言,性能也还不错,因为共享锁不会阻塞共享锁。
表损坏修复
MyISAM支持由于任意意外关闭而损坏的MyISAM表,进行检查和修复操作,但是这里说的修复并不是数据的恢复,因为MyISAM并不是一种事务性的存储引擎,所以它不能进行事务恢复所需要的相关日志,所以要注意MyISAM表的恢复可能会造成数据的丢失。
我们可以通过check table tablename对表进行检查,通过repair table tablename对表进行恢复。
MyISAM表支持的索引类型
MyISAM支持全文索引,并且在mysql5.7版本之前唯一原生就支持全文索引的官方存储引擎。
MyISAM表支持数据压缩
如果MyISAM表示一张很大的只读表,也就是在表创建完导入数据后,就不会对表进行任何修改操作了,那我们就可以对表进行压缩了,以减少磁盘I/O。 我们可以使用myisampack命令来对表进行压缩。压缩是对表独立进行压缩的,因此读取一行数据的时候,不必对整个表进行解压。
限制:
 
版本 < mysql5.0时默认表大小为4G
如存储大表则要修改MAX_Rows 和 AVG_ROW_LENGTH
版本 > mysql5.0时默认支持位256TB
适用场景:
 
非事务性应用
只读类应用(报表之类)
空间类应用
5.2 Innodb
 
Innodb是MySQL5.5及之后版本默认的存储引擎,Innodb是事务存储的存储引擎,也就是说支持事务的处理。
Innodb有自己的表空间的概念,然后数据是存储在表空间之中的,是由innodb_file_per_table这个参数来决定的,如果这个参数为ON,则会对每个Innodb表建立一个扩展名为ibd的系统文件,如果这个参数为OFF时,则会把数据存储到系统的共享表空间,也就是ibdataX,X代表的时一个数字,默认从1开始。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读