欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql存储引擎 博客分类: mysql  

程序员文章站 2024-03-19 10:59:16
...

一、Mysiam

a、存储

Mysiam由FRM、MYI和MYD文件组成

b、锁

共享锁,只能锁表不支持锁行

c、损坏修复

CHECK TABLE myisam_table; //检查表是否损坏
REPAIR TABLE myisam_table; //修复表

d、索引类型

全文索引

e、压缩

对于数据大量插入后不进行任何修改后可以队标进行压缩处理,压缩后表不可写入任何数据

mysiampack -f mysiam_table.myi //需要进入mysql数据文件的目录

 f、限制

  mysql5.0之前文件最大为4G,如果存储大表则修改 MAX_ROWS和AVG_ROW_LENGTH 

g、使用场景

  归档数据,财务数据归档分析 等一些不需要使用事务的大数据存储

 

 

二、Innodb

Mysql5.5.8(包含)之后版本默认存储引擎修改为Innodb,这是一重大改变,让数据库管理人员

优点:

1、Innodb是一种事务性存储引擎,完全支持事务的ACID特性。

2、Innodb支持行级锁

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

4、行级锁是有存储引擎层实现的,Mysql数据库并不知道

 

缺点:

存储文件:

.ibd 数据存储文件(innodb_file_per_table设置为1时才有该文件)

.frm 元数据表结构存储文件

 

阻塞和死锁

什么是阻塞:

阻塞一个事务中的锁需要等待另外一个事务的锁释放。

什么是死锁:

两个或者两个事务上相互对方的事务而产生的 异常。

 

innodb优化:

系统表空间所有表数据都存在:ibdata1文件中,在繁忙的系统中,会发现系统表空间会不断增长。会产生IO瓶颈。

 

独立表空间存下在和扩展名为ibd的文件中。Mysql5.6后默认使用独立表空间配置。
查看innodb运行状态:
show engine innodb status
 
三、CSV

存储文件:

.CSV 是数据内容文件 

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

缺点:不能建立任何索引,字段不能为空,不能创建自增列

优点:可以手动编辑,可以识别任何csv格式的文件。可以将excel转换成为csv格式后,直接进行识别。

 

四、ARCHIVE

 特点:只支持select 和 insert 操作,不支持delete 和update,支持高并发的插入

缺点:只支持在自增列上创建索引,其他字段不能创建索引

存储:ARZ文件存储数据

 

五、MEMORY

特点:数据存在在内存中,所以数据库重启数据就会丢失,支持hash索引和btree两种索引,等值查找简历hash索引,范围查询使用btree索引,MEMORY引擎表默认是hash索引。犹豫数据存储在内存中,所以尽可能让字段范围变的更精确比如char(10) 而不使用varchar(10),不支持大字段类型,例如text blog等,MEMORY是表级锁。

表存储数据最大不能超过 max_heap_table_size 的值,默认为16M,如果想要存储更多数据就需要修改该数据。

使用场景:

1、用于查找和映射,例如邮编和地区对应表。

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

3、用于缓存周期性性聚合数据的结果表

 

六、FEDERATED

特点:

1、提供了访问远程mysql服务器上的表方法

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

3、本地需要保存表结构和远程服务器链接信息 

 

创建表语法语法和远程表一样:

CREATE TABLE `local` (
  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `uname` VARCHAR(150) DEFAULT NULL COMMENT '名称',
  KEY `id` (`id`)
) ENGINE=FEDERATED CONNECTION='mysql://root:123456@10.0.0.104:3307/db1/archive_table' ; 

 

 

七、Blackhole(黑洞引擎)

任何写入到此引擎的数据均会被丢弃掉,不做实际存储,Select语句的内容永远是空,Blackhole虽然不存储数据,但是MySQL还是会正常的记录下Binlog,而且这些Binlog还会被正常的同步到Slave上,可以在Slave上对数据进行后续的处理。 这样对于在Master上只需要Binlog而不需要数据的场合下,balckhole就有用了。

 

  • Mysql存储引擎
            
    
    博客分类: mysql  
  • 大小: 14.9 KB