`
hpgary
  • 浏览: 83077 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Mysql存储引擎

 
阅读更多

一、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就有用了。

 

  • 大小: 14.9 KB
分享到:
评论

相关推荐

    MySql 存储引擎介绍

    MySQL体系结构 MySQL存储引擎 InnoDB存储引擎

    mysql存储引擎介绍

    MySQL 存储引擎详解 MySQL 存储引擎是 MySQL 数据库管理系统中的一种机制,用于管理和存储数据。 MySQL 提供了多种存储引擎,每种引擎都有其特点和优缺。了解 MySQL 存储引擎的特点和优缺是非常重要的,因为它们...

    MySQL存储引擎简介

    MySQL存储引擎是数据库管理系统中负责数据存储和索引管理的核心组件,它允许MySQL数据库系统在不同的存储需求下灵活选择最优的存储方案。在众多数据库系统中,MySQL独树一帜,提供了多种存储引擎供用户选择,使得...

    mysql-存储引擎-实验四.docx

    MySQL 存储引擎实验报告 本实验报告的主要内容是了解 MySQL 存储引擎的概念、设置和特点,并掌握 MySQL 存储引擎的使用方法。实验中涉及到多种存储引擎,包括 MyISAM 和 InnoDB,考察它们的相同点和区别,并对它们...

    第6章MySQL存储引擎与数据库.docx

    MySQL存储引擎是数据库管理系统的核心组件,它决定了数据如何在MySQL中存储、检索和管理。不同的存储引擎具有不同的特性和用途,以适应各种应用场景。在MySQL中,存储引擎主要负责数据的物理存储方式、事务处理、...

    mysql存储引擎(csdn)————程序.pdf

    MySQL存储引擎是数据库管理系统的核心组件,它决定了数据如何被存储、检索和管理。在MySQL中,不同的存储引擎提供了不同的特性和功能,以适应各种应用场景。本文将深入探讨两种常见的存储引擎——InnoDB和MyISAM,并...

    mySql 存储引擎 启用 Innodb

    ### MySQL存储引擎启用InnoDB详解 #### 一、引言 在MySQL数据库系统中,存储引擎扮演着极其重要的角色,它决定了数据如何被存储、检索和管理。其中,InnoDB作为MySQL中最常用的存储引擎之一,提供了众多高级特性,...

    MySQL存储引擎学习

    MySQL存储引擎学习 MySQL存储引擎是MySQL数据库管理系统的核心组件之一,负责数据的存储和提取。 MySQL的存储引擎架构可以分为四个层次:连接层、服务层、引擎层和存储层。其中,引擎层是存储引擎的真正实现者,...

    MySQL存储引擎解析.doc

    MySQL存储引擎是数据库管理系统的核心组成部分,负责数据的存储和访问方式。MySQL系统由多个组件构成,包括管理工具、连接池、SQL接口、分析器、优化器、缓存、存储引擎和硬盘。其中,存储引擎是专门处理表数据的...

    MySQL课程之MySQL存储引擎入门

    MySQL是世界上最流行的关系型数据库管理系统之一,其强大的功能和灵活性主要得益于它支持多种存储引擎。在MySQL课程中,深入理解存储引擎是至关重要的,因为不同的存储引擎有着不同的特性和适用场景,这直接影响到...

    mysql存储引擎比较

    ### MySQL存储引擎比较 #### 一、概述 MySQL是一款广泛使用的开源关系型数据库管理系统,在不同的应用场景下,选择合适的存储引擎至关重要。MySQL支持多种存储引擎,每种存储引擎都有其独特的特性和适用场景。本文...

    深入解析:MySQL存储引擎的奥秘

    通过本文的详细介绍,我们深入了解了MySQL存储引擎的重要性以及不同存储引擎的特点和应用场景。选择合适的存储引擎对于优化MySQL数据库性能和确保数据一致性至关重要。希望本文能够帮助您更好地理解和运用MySQL存储...

    MySQL存储引擎配置与SQL查询

    ### MySQL存储引擎配置与SQL查询 #### 一、MySQL存储引擎的配置 在MySQL数据库管理系统中,存储引擎是用于组织和管理数据的方式。不同的存储引擎提供了不同的特性,例如事务处理能力、索引类型等。因此,了解如何...

    MySQL存储引擎源码学习.zip

    MySQL存储引擎源码学习是一个深度探索数据库管理系统内部机制的重要主题,尤其对于想要深入了解MySQL数据库运行原理的开发者来说,这是不可或缺的知识。MySQL支持多种存储引擎,每个引擎都有其独特的特性和适用场景...

    12.5: PXC 、 MySQL存储引擎.docx

    MySQL存储引擎是数据库管理系统中的核心组件,它负责数据的存储和访问方式。PXC(Percona XtraDB Cluster)是一种高可用性、高性能的MySQL集群解决方案,基于XtraDB存储引擎和Galera同步技术。本文件主要涵盖了PXC...

    王剑英:SEQDB—高性能KV型MySQL存储引擎

    SEQDB是百度研发的高性能MySQL存储引擎,它的设计思路和实现细节与传统MySQL引擎有所不同。它主要利用了固态硬盘(SSD)的高速存储特性,通过优化数据结构和访问模型,旨在提供高性能的键值存储(KV型)能力。Seqdb...

    编写一个简单的mysql存储引擎1

    总的来说,创建一个自定义的MySQL存储引擎,如cedb,是一个涉及C编程、MySQL内部接口理解以及数据库管理系统原理的复杂过程。这个过程要求开发者具备深厚的C语言基础、对MySQL源码的熟悉以及对存储引擎工作原理的...

    MySQL存储引擎及其面向的数据库应用[收集].pdf

    MySQL存储引擎是数据库管理系统的核心组成部分,它决定了数据的存储方式、事务处理机制、索引类型以及其他关键特性。MySQL提供多种存储引擎,每种引擎针对不同的数据库应用场景进行了优化。以下是几种常见的MySQL...

    如何选择合适的MySQL存储引擎.doc

    以下是一些主要的MySQL存储引擎及其特点: 1. **MyISAM**:这是MySQL的默认存储引擎,适用于读取密集型应用。它提供了高速的数据存储和检索,并支持全文搜索。然而,MyISAM不支持事务,这意味着数据的一致性可能...

Global site tag (gtag.js) - Google Analytics