MYSQL性能优化之Mysql体系结构,存储引擎

本文详细介绍了MySQL的多种存储引擎,包括MyISAM、InnoDB、CSV、Archive和Memory,对比了它们的特性,如加锁速度、并发性能和适用场景。InnoDB作为默认存储引擎,支持事务和行级锁,适合高并发场景;MyISAM适合只读操作,支持全文索引。CSV存储引擎便于直接处理CSV文件,而不支持索引;Archive适合日志和数据采集,不支持更新和删除;Memory数据存储在内存中,适合快速读取但重启后数据丢失。选择存储引擎应考虑事务需求、并发性能和数据持久性等因素。
摘要由CSDN通过智能技术生成

Oracle: 数据文件包括:控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件。这是根据文件功能行进行划分,并且所有文件都是二进制编码后的文件,对数据库算法效率有极大的提高。由于Oracle文件管理的统一性,就可以对SQL执行过程中的解析和优化,指定统一的标准:
RBO(基于规则的优化器)、CBO(基于成本的优化器)
通过优化器的选择,以及无敌的HINT规则,给与了SQL优化极大的自由,对CPU、内存、IO资源进行方方面面的优化。
MySQL:最大的一个特色,就是自由选择存储引擎。每个表都是一个文件,都可以选择合适的存储引擎。常见的引擎有 InnoDB、 MyISAM、 NDBCluster等。但由于这种开放插件式的存储引擎,比如要求数据库与引擎之间的松耦合关系。从而导致文件的一致性大大降低。在SQL执行优化方面,也就有着一些不可避免的瓶颈。在多表关联、子查询优化、统计函数等方面是软肋,而且只支持极简单的HINT。
SQL Server :数据架构基本是纵向划分,分为:Protocol Layer(协议层), Relational Engine(关系引擎), Storage Engine(存储引擎), SQLOS。SQL执行过程就是逐层解析的过程,其中Relational Engine中的优化器,是基于成本的(CBO),其工作过程跟Oracle是非常相似的。在成本之上也是支持很丰富的HINT,包括:连接提示、查询提示、表提示。

插件式的意思是,你可以随时改变你的表所使用的存储引擎,比如你建表的时候用的innodb,用了一段时间,用得不爽,你可以随时改存储引擎,engine=xx,改为别的存储引擎,这个就是插件式,随时可以更换存储引擎,随时插拔
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

存储引擎之MyISAM

这里写图片描述
这里写图片描述
这里写图片描述
frm不是特有的,mysql任何存储引擎都有,用于记录表的结构的。MYD存储数据信息,MYI存储索引信息
这里写图片描述
MyISAM使用表级锁,所以对表中数据修改时需要对整个表进行加锁。而在对表中数据读取时,也需要对整表加共享锁。可以看出,读取和写入是互斥的,并发性不是太好。如果是只读的操作,就并发性来讲,还是可以接受的,因为共享锁并不会阻塞共享锁。
对表进行修复可能会造成数据丢失。
这里写图片描述
这里写图片描述
除了使用repair table myIsam来修复,还可以使用这个工具myisamchk –help(修复时需要将mysql服务停止,要不表就糟了,糟了,糟了)
这里写图片描述
全文索引,还支持CHAR、VARCHAR、BINARY、VARBINARY、BLOB和TEXT数据列的前缀(前500个字符)索引。
这里写图片描述

不好意思啊,文件太小啦。只是掩饰啊;
对于已经压缩的表,是不能进行写操作的。只能进行读操作

这里写图片描述
这里写图片描述
<

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值