首页
学习
活动
专区
圈层
工具
发布

mysql 归档引擎

MySQL 归档引擎基础概念

MySQL归档引擎(Archive Storage Engine)是一种用于长期存储大量不常访问的历史数据的存储引擎。它主要设计用于归档目的,而不是实时查询。归档引擎支持高并发插入操作,但不支持索引,因此查询性能较差。

归档引擎的优势

  1. 高并发插入:归档引擎能够高效地处理大量数据的插入操作。
  2. 空间效率:归档引擎使用行压缩技术,可以显著减少存储空间的需求。
  3. 简单性:归档引擎的实现相对简单,易于维护和管理。

归档引擎的类型

MySQL归档引擎主要分为两种类型:

  1. ARCHIVE:这是MySQL自带的归档引擎,支持行级压缩和基本的查询功能。
  2. BLACKHOLE:虽然不是严格意义上的归档引擎,但BLACKHOLE引擎可以用于记录所有写入操作,通常用于复制或日志记录。

归档引擎的应用场景

  1. 数据归档:将不常访问的历史数据归档到低成本存储介质中,以节省空间和提高性能。
  2. 日志记录:用于记录系统或应用的日志数据,便于后续分析和审计。
  3. 备份和恢复:作为备份策略的一部分,将数据归档到安全的位置,以便在需要时进行恢复。

归档引擎遇到的问题及解决方法

问题1:查询性能差

原因:归档引擎不支持索引,因此查询性能较差。

解决方法:

  • 尽量减少对归档表的查询操作。
  • 使用外部工具或脚本来处理归档数据的查询和分析。

问题2:数据压缩和解压缩开销

原因:归档引擎使用行压缩技术,可能会增加插入和查询的开销。

解决方法:

  • 根据实际需求调整压缩级别,平衡压缩比和性能。
  • 使用批量插入操作,减少压缩和解压缩的次数。

问题3:数据一致性和完整性

原因:归档引擎不支持事务处理,可能会导致数据一致性和完整性的问题。

解决方法:

  • 在归档数据之前,确保源数据的一致性和完整性。
  • 使用其他支持事务的存储引擎来处理关键业务数据。

示例代码

以下是一个简单的示例,展示如何使用MySQL归档引擎:

代码语言:txt
复制
-- 创建归档表
CREATE TABLE archive_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    data TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=ARCHIVE;

-- 插入数据
INSERT INTO archive_table (data) VALUES ('Sample data 1');
INSERT INTO archive_table (data) VALUES ('Sample data 2');

-- 查询数据(注意:查询性能较差)
SELECT * FROM archive_table;

参考链接

希望以上信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从MYSQL 数据库归档 到 归档设计

2 数据通过MYSQL dump 或者其他的备份方式,将数据备份出来,在将数据恢复到数据归档库中,然后将备份的数据直接手动清理掉,这样的做法速度也很快,对业务的影响也比较小,基本上可以算是透明的方式了...下面就是一个MYSQL 针对一个数据库表归档的案例(这个案例也是有缺陷的,但目前是秉承着够用就好,以及时间成本的原则) 首先设计一个归档要考虑的问题如下 1 归档表的大小,以及每日最大,或最小的归档数据量...以下以最简单的自动化的方案来讲 下图是基于案例来讲的 因为数据库是MYSQL 所以考虑了归档一次是多大的批量,避免归档数据量过大的时候将生产库hang 死,另外配置表主要的功能是有两个 1 限制一次拷贝和清理的数据量...这样归档有没有缺点,当然有,缺点马上就可以说出几个 1 为什么还要在本地机归档数据,不应该是传送到其他机器上吗 2 为什么不设置每次归档的数量限制(每次限制操作的行数),这对MYSQL不是很用吗,为什么要写死...3 为什么要用MYSQL 存储过程来做,使用python不是更灵活 其实一言难尽,都和需求有关,所以很多设计出来的东西,外人一看一堆毛病,如果你进入到他的内部,一段时间估计你就懂得为什么会设计出这样或那样的东西

6.6K41
  • MySQL8.0 redo log归档功能

    我们知道,在MySQL中,redo log是一个文件组,一般是3个文件,循环写入,写满的时候会做redo log层面的checkpoint,然后覆盖之前的redo log;而binlog是有归档功能的...MySQL8.0.17中引入了redo log的归档功能,如果我们开启归档功能,redo log会持续不断的生成,而不会覆盖掉之前的redo log。这个功能主要在哪种场景下应用呢?...有了redo log的归档功能,就可以在备份启动的时候同步启动redo log 归档,而在备份结束的时候同步停止redo log归档,这样就可以避免这个备份的问题了。...这个用户,并修改用户属性为700 sudo chown -R mysql.mysql /tmp/20200713 mysql >>system chmod 700 /tmp/20200713 mysql...一般情况下,redo log的归档功能,对性能的影响比较小,在高并发事务场景下,可能对性能的影响会有点大。具体数据有待测试。

    1.7K52

    MySQL有哪些存储引擎(MySQL存储引擎大全)

    MyISAM在所有MySQL版本里被支持;不支持事务处理;它是MySQL的默认的存储引擎; MEMORY MEMORY存储引擎,别称HEAP存储引擎;提供“内存中”表,将数据存储在内存中。...MEMORY存储引擎不支持事务处理;MySQL的所有版本都支持InnoDB存储引擎;注释:MEMORY存储引擎正式地被确定为HEAP引擎。...InnoDB存储引擎;它支持事务处理; BDB BDB存储引擎,别名BERKELEYDB;BDB存储引擎提供事务安全表;mysql 5.1以下版本才支持此存储引擎; EXAMPLE EXAMPLE存储引擎是一个...你可以用这个引擎创建表,但没有数据被存储于其中或从其中检索。这个引擎的目的是服务,在MySQL源代码中的一个例子,它演示说明如何开始编写新存储引擎。同样,它的主要兴趣是对开发者。...NDB NDB存储引擎,别名NDBCLUSTER;NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。

    8.5K41

    【MySQL】MySQL的存储引擎

    不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。现在 许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。...用户可以 根据不同的需求为数据表选择不同的存储引擎 可以使用 SHOW ENGINES 命令 可以查看Mysql的 所有执行引擎我们 可以到 默认的执行引擎是innoDB 支持事务,行级锁定和外键。...分类  MyISAM:Mysql 5.5之前的默认数据库引擎,最为常用。...拥有较高的插入,查询速度,但不支持事 务 InnoDB:事务型速记的首选引擎,支持ACID事务,支持行级锁定,MySQL5.5成为默认数据库引 擎 Memory: 所有数据置于内存的存储引擎,拥有极高的插入...MySQL默认存储引擎方法 1.

    6.9K20

    【MySQL 系列】MySQL 引擎篇

    存储引擎是 MySQL 的组件,用于处理不同表类型的 SQL 操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。...1、MySQL 引擎介绍 1.1、MySQL 引擎介绍 存储引擎是 MySQL 的组件,用于处理不同表类型的 SQL 操作。...MySQL引擎的作用包括但不限于以下几个方面: 存储数据:MySQL 引擎负责将数据存储在物理存储介质上,包括硬盘或固态硬盘等。它将数据组织成表、索引等结构,并提供对这些数据的高效访问方式。...1.2、常见引擎及其区别和特点 MySQL支持多种不同类型的存储引擎,每种引擎都有其自身的特点和适用场景。...以下是 MySQL 支持的一些常见引擎及其区别和特点: ① InnoDB: InnoDB 是 MySQL 默认的事务安全引擎,提供了对事务的支持,包括 ACID(原子性、一致性、隔离性、持久性)特性。

    78610

    MySQL 存储引擎

    # MySQL 存储引擎 学习视频地址 (opens new window) MySQL 体系结构 存储引擎介绍 存储引擎特点 InnoDB MyISAM Memory 区别及特点 存储引擎选择 #...引擎层 存储引擎层, 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通 信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。...# InnoDB 介绍 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的 MySQL 存储引擎。...# MyISAM 介绍 MyISAM是MySQL早期的默认存储引擎。...对于复杂的应用系统,还可以根据 实际情况选择多种存储引擎进行组合。 InnoDB: 是Mysql的默认存储引擎,支持事务、外键。

    3.5K20

    mysql存储引擎

    MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表。...在MySQL5.1以 后,INFORMATION_SCHEMA数据库中存在一个ENGINES的表,它提供的信息与show engines;语句完全一样,可以使用下面语句来查询哪些存储引擎支持事物处理:...2)外键约束: MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。      ...VARCHAR是一种长度可变的类型,但因为它在MySQL内部当作长度固定不变的CHAR类型,所以可以使用。...create index mem_hashusinghashontab_memory(city_id);   在启动MySQL服务的时候使用--init-file选项,把insert into..

    2K40

    MySQL InnoDB引擎

    # MySQL InnoDB引擎 逻辑存储引擎 架构 概述 内存架构 磁盘结构 后台线程 事务原理 事务基础 redo log undo log MVCC 基本概念 隐藏字段 undolog readview...为了保证页的连续性,InnoDB 存储引擎每次从磁盘申请 4-5 个区。 行 行,InnoDB 存储引擎数据是按行进行存放的。...# 架构 # 概述 MySQL5.5 版本开始,默认使用InnoDB存储引擎,它擅长事务处理,具有崩溃恢复特性,在日常开发中使用非常广泛。下面是InnoDB架构图,左侧为内存结构,右侧为磁盘结构。...MySQL的innoDB引擎中虽然没有直接支持hash索引,但是给我们提供了一个功能就是这个自适应hash索引。...那实际上,我们研究事务的原理,就是研究MySQL的InnoDB引擎是如何保证事务的这四大特性的。 而对于这四大特性,实际上分为两个部分。

    2.4K10

    Mysql存储引擎

    前言 MySQL提供了插件式的存储引擎架构。所以MySQL存在多种存储引擎,可以根据需要使用相应的引擎。MySQL支持的存储引擎有很多,常用的是:InnoDB,MyISAM。...MEMORY,MERGE作为了解,其中InnoDB提供事务安全,其他存储引擎是非事务安全表。...:  查看Mysql数据库的默认引擎指令: show variables like '%storage_engine%'; 1.1 InnoDB InnoDB存储引擎是Mysql的默认引擎。...外键约束 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候,也会自动的创建对应的索引。...insert into student_all values(3,'幸运'); 总结 对于存储引擎的选择,根据业务需求对应各个存储引擎的特征进行选择即可。

    1.8K20

    mysql 引擎概述

    什么是Mysql 引擎存储引擎是Mysql的组件,用于处理Mysql不同类型的表操作。...Innodb是默认的,最普遍的存储引擎,oracel建议建表时候建议使用除非有特殊需求(create table语法在Mysql5.7中默认创建的是一个Innodb引擎的表)Mysql服务使用可拔插的存储引擎架构...,可以灵活在一个运行的Mysql中进行加载和卸载存储引擎。...Mysql5.7支持的存储引擎InnoDB:: 是Mysql5.7默认的执行引擎,是一个事务安全(符合acid标准)存储引擎,有提交,回滚,容灾恢复的能力来保护用户数据。...4.引擎适用场景Mysql 提供的各种存储引擎在设计时考虑了不同的使用情况。 下表概述了 Mysql 提供的一些存储引擎,表后附有说明。

    83910

    【MySQL】存储引擎

    目录 1.MySQL体系结构 2.存储引擎介绍 3.存储引擎特点 4.存储引擎选择 1.MySQL体系结构 MySQL整体的逻辑结构可以分为4层,客户层、服务层、存储引擎层、数据层 客户层 客户层:进行相关的连接处理...触发器、视图等也在这一层 存储引擎层 存储引擎层负责对数据的存储和提取,常见的存储引擎有InnoDB、MyISAM、Memory等,在 MySQL5.5之后,MySQL默认的存储引擎就是InnoDB,InnoDB...而对于存储引擎,也是一样,他是mysql 数据库的核心,我们也需要在合适 的场景选择合适的存储引擎。接下来就来介绍一下存储引擎。...介绍 InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后, InnoDB 是默认的 MySQL 存储引擎。 2)....对于复杂的应用系统,还可以 根据 实际情况选择多种存储引擎进行组合。 InnoDB: 是 Mysql 的默认存储引擎,支持事务、外键。

    4.4K21

    MySQL存储引擎

    文章目录 MySQL存储引擎 一、查看修改存储引擎 二、主要引擎介绍 1、MyISAM引擎 2、InnoDB 引擎 3、MEMORY 引擎 MySQL存储引擎 一、查看修改存储引擎 查看mysql提供什么存储引擎...TABLE 表名 ENGINE = 存储引擎名称; 二、主要引擎介绍 不同引擎的本质上是数据库数据存储的结构方式不同 在不同的数据下数据库储存有不同的需求,所以需要不同的引擎 种类 锁机 制 B/B...SQL的查询速度 外键:子表的字段依赖父表的主键,设置两张表的依赖关系 事务:多个SQL语句,保证它们共同执行的原子操作,要么成功,要么失败,不能只成功一部分,失败需要回滚事务 索引缓存和数据缓存:和MySQL...存储表结构(MySQL8.0时,合并在表名.ibd中) 表名.ibd 存储数据和索引 注:索引采用聚集索引,索引和数据存储在同一个文件 对比MyISAM: 对比MyISAM的存储引擎, InnoDB写的处理效率差一些...并且会占用更多的磁盘空间(数据和索引是一体的,MyISAM是数据和索引分离的) MyISAM只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实数据, 对内存要求较高 ,而且内存大小对性能有决定性的影响 注:MySQL5.5

    3.7K40

    Mysql存储引擎

    当别人问我Mysql的存储引擎的时候,我就知道Myisam和innodb 虽然知道有其他的存储引擎,但是从来没有去了解过今天了解一下扩充知识 查看Mysql的存储引擎 show engines; MyISAM...Mysql 5.5之前默认的存储引擎 MyISAM存储引擎由MYD和MYI组成 ?  ...适用场景: 非事物型应用(数据仓库,报表,日志数据) 只读类应用 空间类应用(空间函数,坐标) INNODB MySql5.5以及以后版本默认的存储引擎 innodb_file_per_table   ...特点:   提供了远程访问Mysql服务器上的表的方法   本地不存储数据,数据全部放到远程服务器上   本地需要保存表结构和远程服务器的链接信息  使用场景:   偶尔的统计分析及手工查询 这个存储引擎默认是不开启的如果需要使用需要手动开启...是不是感觉知识扩充了一些, 作者:彼岸舞 时间:2020\07\05 内容关于:Mysql 本文来源于网络,只做技术分享,一概不负任何责任

    4.5K20
    领券