MySql的高可用之路--2.MySQL体系结构以及存储引擎的区别和数据库操作及它们的适用场景

MySQL体系结构

插件式存储引擎:可以使用户根据需求选择不同的查询、存储方式。

 MySQL常用存储引擎值MyISAM

MySQL5.5之前的默认存储引擎

临时表:在排序、分组等操作中,当数据超过一定的大小之后,由查询优化器建立的临时表。

  

 特性:

MyISAM使用的是表级锁而不是行级锁

MyISAM的表损坏修复:check table tablename、repair table tablename

数据操作(.frm文件是记录表结构的):

 

 

 

 MyISAM表支持数据压缩

命令行:myisampack

对于已经压缩过的表只能进行读操作不能进行其他操作

在MySQL5.0时默认支持的单表存储内存为256TB 

 使用场景:

非事务型应用(事务型:账单表等)

只读类应用(因为它有压缩数据表的功能)

空间类应用(如存储GPS数据,利用空间函数对锁进行运算基本上就只能使用它)

MySQL常用存储引擎之Innodb

MySQL5.5及之后版本默认存储引擎

Innodb:使用表空间进行数据存储

数据库操作:

 

关闭独立表空间 

 

系统表空间和独立表空间要如何选择:

比较:

系统表空间无法简单的收缩文件大小

独立表空间可以通过optimize table 命令收缩系统文件

系统表空间会产生IO瓶颈

独立表空间可以同时向多个文件刷新数据

 建议:使用独立表空间

Innodb支持行级锁

行级锁可以最大程度的支持并发

行级锁是由存储引擎层实现的

 锁的类型:

共享锁(也称读锁)

独占锁(也称写锁)

Innodb状态检查:

show engine innodb status

适用场景:

Innodb适合于大多数OLTP应用(支持全文索引,空间函数)

 

MySQL常用存储引擎值CSV

前面两种都是以二进制的方式存储的,而CSV则是采用文本方式存储在文件中

.CSV文件存储表内容

.CSM文件存储表的元数据如表状态和数据量

.frm文件存储表结构信息

特点:

以CSV格式进行数据存储

所有列必须都是不能为null的

不支持索引

 数据库操作:

 

查看表内容

直接对表信息进行文本方式修改:

 

 

 刷新表

 使用场景:

适合做为数据交换的中间表(如excel表)

 MySQL常用存储引擎之Archive

文件系统存储特点:

以zlib对表数据进行压缩,磁盘I/O更少

以zlib对表数据进行压缩,磁盘I/O更少

数据内容存储在ARZ为后缀的文件中

只支持insert和select操作

只允许在自增ID列上加索引

数据库操作:

 

不支持删除和更新操作 

 适用场景:

日志和数据采集类应用

MySQL常用存储引擎之Memory

文件系统存储特点:

也称为HEAP存储引擎,所以数据保存在内存中(也就是说,一但数据库重启数据就会全部消失)

功能特点:

支持hash索引(等值查询)和BTree索引(范围查询)

不支持BLOG和TEXT等大字段

memory存储引擎使用表级锁

数据库操作:

 使用场景:

用于查找或者是映射表,例如邮编和地区的对应表

用于保存数据分析中产生的中间表

用于缓存周期性聚合数据的结构表

MySQL常用存储引擎之Federated

特点:

提供了访问远程MySQL服务器上表的方法

本地不存储数据,数据全部放在远程服务器上

数据库操作: 

结果显示不支持Federated: 

 修改配置文件:

 

重启服务器,查看Federated

分别创建本地和 远程数据库

注意:远程数据库使用的存储引擎使用的是innodb 

 

设置远程连接相关属性:

转换到本地数据库:

创建表,设置存储引擎为Federated,设置远程连接地址及密码

 

 重命名:

直接查询:(该数据是从远程数据库表获取到的,还可以进行其他所有操作)

 查看本地数据库是否存在数据,可以看到它只有一个.frm文件,说明没有存储数据

 使用场景:

偶尔的统计分析及手工查询

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值