mysql 8.0 的 建表 和八种 建表引擎实例

文章目录

  • MySQL 8.0 中,主要有以下四种常见的建表引擎
  • 一、InnoDB 引擎建表
    • 注意点
    • 建表
    • 知识点
  • 二、MyISAM 引擎建表
    • 使用场景
  • 三、Memory 引擎
    • 使用场景
  • 四、Archive 引擎
  • 五、BLACKHOLE 引擎
    • 一、特点
    • 二、适用场景
    • 三、注意事项
  • 六、MRG_MyISAM 引擎
    • MRG_MyISAM 和 MyISAM 的区别
      • 一、存储方式
      • 二、数据管理
      • 三、性能表现
      • 四、适用场景
  • 七、CSV 引擎
    • 注意点
    • 一、存储特点
    • 二、适用场景
    • 三、注意事项
  • 八、PERFORMANCE_SCHEMA引擎
    • 说明
    • 一、主要功能
    • 二、使用方法
  • 总结


MySQL 8.0 中,主要有以下四种常见的建表引擎


一、InnoDB 引擎建表

特点:
支持事务处理,具有 ACID(原子性、一致性、隔离性、持久性)特性。这对于确保数据的完整性和一致性非常重要,特别是在多用户并发访问的情况下。
行级锁定机制,提高了并发性能,允许多个用户同时对表进行读写操作,而不会相互阻塞。
支持外键约束,可以在不同表之间建立关联关系,保证数据的一致性和完整性。
具有良好的故障恢复能力,在数据库发生故障时能够快速恢复数据。

适用场景:
对数据完整性和一致性要求较高的应用,如企业级应用、金融系统等。
高并发的读写操作场景,如电商平台、社交网络等。

注意点

如果有自增长字段需要加 key ,否则会报错
在这里插入图片描述

建表

CREATE TABLE `Dim_map_world` (                                                         `id` INT NOT NULL AUTO_INCREMENT COMMENT '序号',                                       `country` varchar(50) DEFAULT NULL COMMENT '国家',                                     `Continent` varchar(50) DEFAULT NULL COMMENT '所属大州',                                 PRIMARY KEY(id)                                                                      
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT '世界名称维度表'   

知识点

数据类型为INT,表示整数类型。
NOT NULL表示该字段不能为空值。
AUTO_INCREMENT表示该字段是自增的,每当插入一条新记录时,该字段的值会自动递增。
COMMENT '序号’是对该字段的注释,说明这个字段用于存储序号。
DEFAULT NULL表示如果在插入数据时没有为该字段指定值,则默认为空值。

PRIMARY KEY(id)将id字段设置为主键。主键用于唯一标识表中的每一行记录,确保数据的完整性和一致性。在这个表中,id作为序号字段,被选为主键是一种常见的设计选择。
存储引擎和字符集:

ENGINE=InnoDB 指定了表的存储引擎为 InnoDB。InnoDB 是一种支持事务、行级锁定和外键约束的存储引擎,被广泛应用于 MySQL 数据库中。

DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci指定了表的字符集为utf8mb4,并使用utf8mb4_0900_ai_ci排序规则。utf8mb4是一种支持更多字符的字符集,可以存储包括emoji 等特殊字符。排序规则决定了字符的比较和排序方式。

在这里插入图片描述

二、MyISAM 引擎建表

特点:
不支持事务处理和外键约束。
表级锁定机制,在写入操作时会锁定整个表,导致并发性能相对较低。
占用空间较小,对于一些只读或者以查询为主的应用,可以节省存储空间。
支持全文索引,对于需要进行文本搜索的应用非常有用。

适用场景:
以查询为主的应用,数据写入操作较少的情况。,
对存储空间要求较高的应用。
需要全文搜索功能的应用。

CREATE TABLE `Dim_map_world_1` (                                                         `id` INT NOT NULL AUTO_INCREMENT COMMENT '序号',                                       `country` varchar(50) DEFAULT NULL COMMENT '国家',                                     `Continent` varchar(50) DEFAULT NULL COMMENT '所属大州',                                 PRIMARY KEY(id)                                          
) ENGINE='MyISAM' DEFAULT CHARSET='utf8mb4' COLLATE='utf8mb4_0900_ai_ci' COMMENT '世界名称维度表'   

使用场景

mysql 数据库 如果表 使用=MyISAM,一般 会用于 数据可视化的数据源,他以查询为主的应用,数据写入操作较少的情况,前端开发人员可能用的比较少。但是如果是数仓这个一定不陌生。

一、数据仓库和报表系统
特点:
对于数据仓库和报表系统,通常需要快速的查询性能来生成各种报表和分析结果。MyISAM 引擎的表级锁定虽然在并发写入时性能较低,但对于以读为主的场景影响较小。
占用空间较小,对于存储大量历史数据的数据仓库来说,可以节省存储成本。
示例:
假设一个电商企业的数据仓库,需要存储多年的销售订单数据以供生成月度、季度和年度销售报表。这些数据主要用于查询和分析,写入操作相对较少。使用 MyISAM 引擎可以在保证查询性能的同时,降低存储成本。

二、只读数据库或静态内容存储
特点:
如果数据库中的数据是静态的,不需要频繁修改,MyISAM 引擎是一个不错的选择。它不支持事务处理和外键约束,这在只读场景下不是问题。
对于存储静态网页内容、配置文件等只读数据,MyISAM 可以提供快速的读取性能。
示例:
一个企业的内部文档管理系统,存储了大量的 PDF、Word 文档等静态文件的元数据。这些元数据在系统运行过程中很少被修改,主要用于查询和检索。使用 MyISAM 引擎可以快速响应查询请求,提高系统性能。

三、日志记录和监控系统
特点:
日志记录和监控系统通常需要快速写入大量数据,并且对数据的完整性要求相对较低。MyISAM 引擎在写入性能方面表现较好,尤其是在大量顺序写入的情况下。
可以利用 MyISAM 的全文索引功能,对日志内容进行快速搜索和分析。
示例:
一个网络监控系统,需要记录大量的网络流量数据和设备状态信息。这些数据主要用于事后分析和故障排查,对实时性要求不高。使用 MyISAM 引擎可以快速记录数据,并在需要时进行查询和分析。

四、数据备份和恢复
特点:
在进行数据备份时,MyISAM 引擎的表可以直接复制文件,而不需要像 InnoDB 那样进行复杂的事务处理和日志管理。这使得备份过程更加简单和快速。
恢复数据时也相对容易,只需要将备份的文件复制回数据库目录即可。
示例:
对于一些小型企业或个人用户,可能没有复杂的备份和恢复工具。使用 MyISAM 引擎可以通过简单的文件复制来进行数据备份和恢复,降低了管理成本

三、Memory 引擎

特点:
将数据存储在内存中,读写速度非常快。
不支持事务处理和外键约束。
数据在数据库关闭时会丢失,因此只适用于临时数据或者缓存数据的存储。
适用场景:
临时表或者缓存表,用于存储临时数据或者提高查询性能。
需要快速读写操作的场景,如数据分析、报表生成等。

CREATE TABLE `Dim_map_world_2` (                                                         `id` INT NOT NULL AUTO_INCREMENT COMMENT '序号',                                       `country` varchar(50) DEFAULT NULL COMMENT '国家',                                     `Continent` varchar(50) DEFAULT NULL COMMENT '所属大州',                                 PRIMARY KEY(id)                                          
) ENGINE='Memory' DEFAULT CHARSET='utf8mb4' COLLATE='utf8mb4_0900_ai_ci' COMMENT '世界名称维度表'   insert into Dim_map_world_2 (country,Continent) values ('中国','亚洲')

使用场景

在 MySQL 8.0 中,Memory 引擎有以下应用场景:
一、临时数据存储
特点:
Memory 引擎将数据存储在内存中,读写速度极快。对于需要快速处理和临时存储的数据非常适合。
数据库关闭时,数据会丢失,所以适合存储那些不需要长期保存的临时结果集。
示例:
在数据仓库的 ETL(Extract, Transform, Load)过程中,可能需要对大量数据进行中间处理,生成一些临时的结果集。这些结果集只在 ETL 过程中使用,一旦处理完成,就不再需要。使用 Memory 引擎存储这些临时结果集,可以大大提高处理速度。
二、缓存数据
特点:
可以作为缓存层,存储经常被访问的数据,以减少对磁盘存储的访问次数,提高查询性能。
由于数据存储在内存中,读取速度远远快于从磁盘读取数据。
示例:
一个电商网站的商品搜索功能,经常需要查询商品的基本信息和库存数量等。可以将这些频繁访问的数据存储在 Memory 引擎的表中,当用户进行搜索时,直接从内存中读取数据,大大提高响应速度。
三、快速计算和分析
特点:
对于一些需要快速计算和分析的场景,Memory 引擎可以提供高效的内存操作。
可以在内存中进行复杂的计算和聚合操作,避免了频繁的磁盘 I/O。
示例:
金融领域的实时风险评估系统,需要对大量的交易数据进行快速分析和计算。将交易数据加载到 Memory 引擎的表中,可以在内存中进行实时计算,及时评估风险并做出决策。
四、测试和开发环境
特点:
在测试和开发环境中,数据的持久性要求相对较低。使用 Memory 引擎可以快速创建和修改表结构,方便进行测试和调试。
由于数据存储在内存中,不会对磁盘造成过多的读写压力,也不会影响生产环境的数据。
示例:
软件开发团队在进行新功能开发时,可以使用 Memory 引擎创建测试数据,进行快速的功能测试和验证。一旦测试完成,可以轻松地删除测试数据,不会对数据库造成持久影响。

四、Archive 引擎

特点:
主要用于存储大量的历史数据,占用空间非常小。
只支持插入和查询操作,不支持更新和删除操作。
适合存储不需要经常修改的数据,如日志数据、历史记录等。
适用场景:
数据仓库中的历史数据存储。
日志记录和审计跟踪等应用。

CREATE TABLE `Dim_map_world_3` (                                                         `id` INT NOT NULL AUTO_INCREMENT COMMENT '序号',                                       `country` varchar(50) DEFAULT NULL COMMENT '国家',                                     `Continent` varchar(50) DEFAULT NULL COMMENT '所属大州',                                 PRIMARY KEY(id)                                          
) ENGINE='Archive' DEFAULT CHARSET='utf8mb4' COLLATE='utf8mb4_0900_ai_ci' COMMENT '世界名称维度表'   insert into Dim_map_world_3 (country,Continent) values ('中国','亚洲')

五、BLACKHOLE 引擎

BLACKHOLE(黑洞)表引擎是 MySQL 中的一种特殊存储引擎。以下是关于 BLACKHOLE 表引擎的详细介绍:

一、特点

数据 “黑洞”:
写入到 BLACKHOLE 表的数据会被 “丢弃”,就像被吸入黑洞一样,不会真正存储在磁盘上。这意味着对 BLACKHOLE 表的写入操作看似成功,但实际上数据并不会被持久化保存。
复制功能:
BLACKHOLE 表在复制环境中非常有用。当设置了主从复制时,主服务器上对 BLACKHOLE 表的写入操作会被记录在二进制日志中,并传输到从服务器。从服务器会执行相同的写入操作,即使从服务器上的 BLACKHOLE 表也不会存储数据,但这个过程可以确保主从服务器之间的操作一致性。

二、适用场景

测试复制配置:
在设置和测试 MySQL 复制架构时,BLACKHOLE 表可以用来模拟实际的数据写入操作,而无需担心数据的存储和管理。通过观察主从服务器之间对 BLACKHOLE 表的复制行为,可以验证复制配置是否正确。
性能测试:
可以使用 BLACKHOLE 表来测试数据库的写入性能,而不会占用实际的磁盘空间。这对于评估数据库在高负载写入情况下的性能表现非常有用。
日志记录的中间层:
在某些情况下,可以将 BLACKHOLE 表用作日志记录的中间层。例如,一个应用程序可能需要记录一些操作,但并不关心这些日志数据的长期存储。可以将日志写入到 BLACKHOLE 表,然后使用其他工具或机制来处理和分析这些日志。

三、注意事项

数据丢失风险:
由于 BLACKHOLE 表不存储数据,所以在使用时要特别小心,避免误将重要数据写入到 BLACKHOLE 表中而导致数据丢失。
性能影响:
虽然写入到 BLACKHOLE 表的操作不会涉及实际的磁盘 I/O,但在某些情况下,仍然可能会对数据库性能产生一定的影响。例如,如果大量的并发写入操作都针对 BLACKHOLE 表,可能会消耗数据库服务器的资源,影响其他正常的数据库操作。
与其他存储引擎的区别:
BLACKHOLE 表引擎与其他存储引擎(如 InnoDB、MyISAM 等)有很大的不同,它不提供数据的持久化存储和检索功能。在选择存储引擎时,要根据具体的应用需求来决定是否使用 BLACKHOLE 表引擎

    CREATE TABLE `dim_map_world_4` (`id` int NOT NULL AUTO_INCREMENT COMMENT '序号',`country` varchar(50) DEFAULT NULL COMMENT '国家',`Continent` varchar(50) DEFAULT NULL COMMENT '所属大州',PRIMARY KEY (`id`)
) ENGINE=BLACKHOLE AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='世界名称维度表';insert into dim_map_world_4 (country,Continent) values ('中国','亚洲')

六、MRG_MyISAM 引擎

MRG_MyISAM 和 MyISAM 的区别

MRG_MYISAM(Merge MyISAM)和 MYISAM 都是 MySQL 中的存储引擎,它们之间有以下主要区别:

一、存储方式

MYISAM:
每个 MYISAM 表都是独立存储的,数据和索引分别存放在不同的文件中。
对于大型数据表,可能需要占用大量的磁盘空间,并且管理起来相对独立。
MRG_MYISAM:
可以将多个结构相同的 MYISAM 表合并为一个逻辑表进行管理。
数据存储在多个成员表中,但从外部看像是一个单独的表,节省了管理多个独立表的开销。

二、数据管理

MYISAM:
单独管理每个表的数据,插入、更新和删除操作都是针对单个表进行的。
如果需要对多个相关表进行操作,需要分别对每个表执行相应的 SQL 语句。
不支持事务处理,这意味着如果在一系列操作过程中出现错误,可能无法回滚到操作前的状态。
MRG_MYISAM:
可以对合并后的逻辑表进行统一的查询和操作,简化了对多个相关表的管理。
不支持事务处理,与 MYISAM 一样。但由于多个表被合并为一个逻辑表,在某些情况下可以通过设计来减少对事务的需求。

三、性能表现

MYISAM:
对于单个大型表的查询,可能会因为数据量大而导致性能下降。
索引的维护也需要针对单个表进行,可能会消耗一定的资源。
MRG_MYISAM:
通过将数据分散到多个成员表中,可以提高查询性能,特别是当数据量非常大时。
可以根据特定的查询需求选择合适的成员表进行查询,提高查询的效率。

四、适用场景

MYISAM:
适用于对数据一致性要求不高、以读为主的应用场景。
例如,一些静态数据的存储或者数据仓库中的只读表。
MRG_MYISAM:
适用于需要管理多个结构相同的表,并且希望以统一的方式进行查询和操作的场景。
比如,日志数据的存储,将不同时间段的日志存储在不同的成员表中,然后通过合并表进行查询分析。

    CREATE TABLE `dim_map_world_5_1` (`id` int NOT NULL AUTO_INCREMENT COMMENT '序号',`country` varchar(50) DEFAULT NULL COMMENT '国家',`Continent` varchar(50) DEFAULT NULL COMMENT '所属大州',PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='世界名称维度表';CREATE TABLE `dim_map_world_5_2` (`id` int NOT NULL AUTO_INCREMENT COMMENT '序号',`country` varchar(50) DEFAULT NULL COMMENT '国家',`Continent` varchar(50) DEFAULT NULL COMMENT '所属大州',PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='世界名称维度表';insert into Dim_map_world_5_1 (country,Continent) values ('中国','亚洲')
insert into Dim_map_world_5_2 (country,Continent) values ('韩国','亚洲')表合并
CREATE TABLE `dim_map_world_5` (`id` int NOT NULL AUTO_INCREMENT COMMENT '序号',`country` varchar(50) DEFAULT NULL COMMENT '国家',`Continent` varchar(50) DEFAULT NULL COMMENT '所属大州',PRIMARY KEY (`id`)
) ENGINE=MRG_MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 
COLLATE=utf8mb4_0900_ai_ci union=(`dim_map_world_5_1`,`dim_map_world_5_2`)
COMMENT='世界名称维度表';select * from dim_map_world_5

七、CSV 引擎

注意点

需要说明的是 如果使用 CSV 作为表引擎 所有的字段都将是 not null 并且不能使用 AUTO_INCREMENT

在 MySQL 中,CSV(Comma-Separated Values,逗号分隔值)引擎具有以下特点:

一、存储特点

文本存储:
CSV 引擎以纯文本文件的形式存储数据,每行代表一条记录,字段之间用逗号分隔。这种存储方式使得数据可以很容易地被其他程序读取和处理,比如电子表格软件。
数据没有被二进制编码,因此非常直观,便于查看和编辑。
简单结构:
不支持索引(除了自增列的隐式索引),这意味着查询性能可能相对较低,尤其是对于大型数据集和复杂查询。
不支持事务处理,不能保证数据的原子性、一致性、隔离性和持久性(ACID)。

二、适用场景

数据交换:
非常适合用于在不同系统之间进行数据交换。由于 CSV 是一种通用的文本格式,几乎所有的软件都可以读取和处理 CSV 文件。
例如,将数据从 MySQL 导出为 CSV 文件,然后导入到其他数据库系统或数据分析工具中。
临时存储:
当需要临时存储一些简单的数据,并且不关心事务和索引时,可以使用 CSV 引擎。比如在进行一些快速的数据测试或临时的数据存储需求时。
简单数据记录:
对于一些只需要简单记录数据,而不需要复杂查询和事务处理的应用场景,CSV 引擎可能是一个合适的选择。例如,记录一些日志信息或简单的统计数据。

三、注意事项

性能限制:
由于缺乏索引和事务支持,查询性能可能会受到很大影响。对于频繁进行查询和更新操作的应用,不建议使用 CSV 引擎。
数据一致性:
没有事务处理意味着在并发写入时可能会出现数据不一致的情况。如果多个进程同时写入 CSV 表,可能会导致数据损坏或丢失。
数据类型限制:
CSV 引擎对数据类型的支持相对有限。所有数据都以字符串的形式存储,在读取数据时需要进行类型转换。这可能会导致一些数据类型错误或不准确的转换。

CREATE TABLE `dim_map_world_6` (`id` int NOT NULL  COMMENT '序号',`country` varchar(50) not NULL COMMENT '国家',`Continent` varchar(50) not NULL COMMENT '所属大州'
) ENGINE=CSV DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='世界名称维度表';insert into test.Dim_map_world_6 (id,country,Continent) values (1,'中国','亚洲')

八、PERFORMANCE_SCHEMA引擎

说明

PERFORMANCE_SCHEMA是 MySQL 中的一种特殊的表引擎,主要用于收集和分析数据库服务器的性能数据。并存在 mysql 的系统数据库PERFORMANCE_SCHEMA中,自这个数据库中表一般使用这个引擎。

一、主要功能

监控数据库性能
PERFORMANCE_SCHEMA提供了大量的表来监控数据库服务器的各种性能指标,如查询执行时间、锁等待时间、内存使用情况等。通过查询这些表,可以了解数据库的运行状态,找出性能瓶颈。
例如,可以查询 events_statements_summary_by_digest表来了解不同 SQL 语句的执行统计信息,包括执行次数、平均执行时间、锁等待时间等。
诊断性能问题
当数据库出现性能问题时,可以使用 PERFORMANCE_SCHEMA中的表来诊断问题的根源。例如,如果发现数据库响应时间变慢,可以查询 events_waits_current表来查看当前正在等待的事件,从而确定是否存在锁等待、I/O 等待等问题。
还可以通过查询 memory_summary_by_thread_by_event_name表来了解每个线程的内存使用情况,找出可能存在的内存泄漏问题。
优化数据库配置
根据 PERFORMANCE_SCHEMA提供的性能数据,可以调整数据库的配置参数,以提高数据库的性能。例如,如果发现某个存储引擎的缓存命中率较低,可以考虑调整缓存大小;如果发现锁等待时间较长,可以考虑优化 SQL 语句或调整事务隔离级别。

二、使用方法

启用 PERFORMANCE_SCHEMA
默认情况下,PERFORMANCE_SCHEMA是启用的。可以通过检查 my.cnf配置文件中的 performance_schema参数来确认。如果该参数的值为 ON,则表示 PERFORMANCE_SCHEMA已启用。
查询性能数据
可以使用标准的 SQL 查询语句来查询 PERFORMANCE_SCHEMA中的表。例如:

   SELECT * FROM events_statements_summary_by_digest;

也可以使用 MySQL 提供的一些工具,如 mysqldumpslow,来分析 PERFORMANCE_SCHEMA中的性能数据。
配置选项
PERFORMANCE_SCHEMA提供了一些配置选项,可以根据需要进行调整。例如,可以通过设置 performance_schema_max_*参数来限制 PERFORMANCE_SCHEMA收集的数据量,以避免占用过多的内存。
三、注意事项
性能开销
PERFORMANCE_SCHEMA会消耗一定的系统资源来收集和存储性能数据。在高负载的数据库服务器上,可能会对性能产生一定的影响。因此,在使用 PERFORMANCE_SCHEMA时,需要根据实际情况进行权衡,避免对数据库性能造成过大的影响。
数据准确性
PERFORMANCE_SCHEMA提供的性能数据是基于采样和统计的,可能存在一定的误差。在分析性能数据时,需要结合实际情况进行判断,避免过度依赖统计数据。
版本兼容性
PERFORMANCE_SCHEMA的功能和表结构可能会随着 MySQL 版本的升级而发生变化。在使用 PERFORMANCE_SCHEMA时,需要注意版本兼容性问题,确保查询的表和字段在不同版本的 MySQL 中都存在。

总结

上面就是比较常用的 8中 mysql 建表语句归纳
如果要找到数据库是否支持表引擎 可以使用 下面的语句

SHOW ENGINES

在这里插入图片描述
可以看到其实还有几种表引擎没有说,如 Federated,ndbinfo,ndbcluster 等

具体可以去mysql 官网查看
https://dev.mysql.com/doc/refman/8.4/en/show-engines.html

以下是 MySQL 八种引擎的使用场景说明:

  • 一、InnoDB 引擎

事务处理:适用于需要支持事务的应用,确保数据的一致性和完整性。例如银行交易系统、电商订单处理等,在这些场景中,多个操作需要作为一个原子单元执行,要么全部成功,要么全部失败。
高并发读写:具有良好的并发控制机制,能处理大量的并发读写操作。对于高流量的 Web 应用、企业级应用等,InnoDB 可以提供稳定的性能和数据可靠性。
外键约束:支持外键约束,可用于维护数据之间的关系。在复杂的数据模型中,确保数据的关联性和正确性。
用于应用系统,支持事务处理,具有 [ACID(原子性、一致性、隔离性、持久性)]

  • 二、MyISAM 引擎

以读为主的应用:对于主要进行读取操作而写入操作较少的场景,如数据仓库的只读查询、报表生成等。MyISAM 在读取性能上有一定优势。
快速插入和查询:如果需要频繁进行插入操作并且对查询性能要求不是特别高,可以考虑 MyISAM。例如日志记录系统,大量数据不断插入,而查询相对较少。
临时表:在一些临时数据存储的场景中,如数据处理的中间结果存储,可以使用 MyISAM 引擎创建临时表,因为它的创建和删除速度相对较快。

可以用于 数据仓库不支持事务处理和外键约束。以查询为主的应用,数据写入操作较少的情况。,对存储空间要求较高的应用。需要全文搜索功能的应用。读取速度比InnoDB 引擎快

  • 三、Memory 引擎

临时数据存储:适用于存储临时结果集或需要快速访问的数据。例如在一些数据处理过程中,需要临时存储中间结果,使用 Memory 引擎可以提高处理速度。
缓存应用:可以作为缓存层,存储经常访问的数据,以减少对磁盘的访问次数,提高查询性能。例如,将频繁查询的配置信息、字典数据等存储在 Memory 引擎表中。
快速测试环境:在开发和测试环境中,用于快速创建和测试表结构和查询,因为数据存储在内存中,操作速度非常快。
会占有比较多的磁盘空间和内容,比MyISAM 和 InnoDB 存储空间都要大

  • 四、Archive 引擎

归档数据存储:主要用于存储大量历史数据,这些数据很少被查询,但需要长期保存。例如日志归档、历史交易记录归档等。
数据备份:可以作为一种数据备份方式,将不常访问的数据归档到 Archive 引擎表中,以释放主存储的空间。
低资源需求:由于 Archive 引擎对存储资源的需求较低,适合在存储资源有限的环境中使用。
archive表特点
**
1.支持insert和select,drop
2.不支持DML操作,如delete,update,truncate
3.只支持在auto_increment的列上创建索引,其他列不支持索引**

  • 五、BLACKHOLE 引擎

测试复制配置:在设置和测试 MySQL 复制架构时,BLACKHOLE 引擎表可以模拟实际的数据写入操作,而无需担心数据的存储和管理。通过观察主从服务器之间对 BLACKHOLE 表的复制行为,可以验证复制配置是否正确。
性能测试:可以使用 BLACKHOLE 表来测试数据库的写入性能,而不会占用实际的磁盘空间。
日志记录的中间层:在某些情况下,可以将 BLACKHOLE 表用作日志记录的中间层,数据可以被记录但不实际存储,后续可以通过其他工具或机制进行处理。
不支持索引和事务
BLACKHOLE 引擎

  • 六、MRG_MyISAM 引擎

数据分区存储:当数据量非常庞大,单个表难以管理或者查询性能低下时,可以将数据划分到多个 MyISAM 表中,然后使用 MRG_MyISAM 引擎将这些表合并为一个逻辑表进行管理。例如日志记录系统、历史数据存储等。
多数据源合并:如果数据来自多个不同的数据源,但具有相同的结构,可以使用 MRG_MyISAM 将这些数据源合并为一个统一的视图,方便查询和分析。
临时数据分析任务:在进行一些临时的数据分析任务时,如果需要整合多个结构相同的表进行查询,MRG_MyISAM 可以快速搭建一个合并表,满足分析需求。

MRG_MyISAM 是所有引擎中 存储空间最小的

  • 七、CSV 引擎

数据交换:非常适合用于在不同系统之间进行数据交换。由于 CSV 是一种通用的文本格式,几乎所有的软件都可以读取和处理 CSV 文件。
临时存储:当需要临时存储一些简单的数据,并且不关心事务和索引时,可以使用 CSV 引擎。比如在进行一些快速的数据测试或临时的数据存储需求时。
简单数据记录:对于一些只需要简单记录数据,而不需要复杂查询和事务处理的应用场景,如记录一些日志信息或简单的统计数据。
不支持索引:、不支持分区: 所有列必须为NOT NULL:

  • 八、PERFORMANCE_SCHEMA引擎

一般是系统使用的表引擎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415400.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp组件中的emit声明触发事件

emit解析 在 uniapp 中,emit 主要用于组件间通信,特别是在子组件需要向父组件或者其他组件发送消息的时候。具体用途包括: 子传父数据:子组件通过 $emit 触发一个事件,并携带参数,父组件监听这个事件并对参…

Oracle 网络安全产品安全认证检索

自2023年7月1日起,国家网信办、工业和信息化部、公安部、国家认证认可监督管理委员会统一公布和更新网络关键设备和网络安全专用产品清单。列入《网络关键设备和网络安全专用产品目录》的网络安全专用产品应当按照《信息安全技术网络安全专用产品安全技术要求》等相…

笔记:应用Visual Studio Profiler分析CPU使用情况

一、目的:应用Visual Studio Profiler分析CPU使用情况 使用 Visual Studio Profiler 分析 CPU 使用情况可以帮助你识别性能瓶颈,优化代码,提高应用程序的响应速度。 二、实现 以下是如何使用 Visual Studio Profiler 分析 CPU 使用情况的详…

保存json时,保存成自己喜欢的格式的方法(而不是直接保存成格式化的json文档)

保存json时,不是直接保存成格式化的json文档的格式的方法 前言,博主是如何把格式话的json格式保存成自己喜欢的json格式的保存成格式化的json文档的格式:带缩进格式全部保存成一行每条数据保存成一行: 保存成自己喜欢的格式碎碎念…

Hadoop之HDFS的原理和常用命令及API(java)

1、简介 书接上回,上篇博文中介绍如何安装Hadoop和基本配置,本文介绍Hadoop中分布式文件组件--HDFS,在HDFS中,有namenode、datanode、secondnamenode这三个角色,本文将详细介绍这几个组件是如何进行协作的,…

【数据结构 | 每日一题】图的概念辨析

图的概念辨析 考点分析:我们学习数据结构图的第一小节就是:图的基本概念,我们会发现图的概念非常多且有些概念之间又很像,而对于初学者来说,相比树的概念是不好理解的,很容易搞混,因此做了这么…

传输层(TCP、UDP、RDT详解)

目录 1.无连接传输:UDP UDP:User Datagram Protocol(用户数据报协议) UDP:校验和 Internet校验和的例子 2.可靠数据传输(Rdt)的原理 可靠数据传输:问题描述 1.Rdt1.0&#xff…

【hot100篇-python刷题记录】【在排序数组中查找元素的第一个和最后一个位置】

R7-二分查找篇 目录 双指针 二分优化 ps: 思路&#xff1a; 双指针 直接用双指针回缩啊 class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:ret[-1,-1]left,right0,len(nums)-1while left<len(nums):if nums[left]target:ret[0]…

华为Huawei路由器交换机SSH配置

华为设备的SSH登录配置需要5个步骤&#xff0c;示例如下&#xff1a; 一、配置命令 使能SSH功能 stelnet server enable生成公钥 rsa local-key-pair create 1024配置AAA用户密码及相应授权 aaalocal-user xxx password cipher xxxyyy1234local-user xxx privilege level …

三十二、初识Gin框架

目录 一、搭建web项目 1、引入gin依赖 2、搭建项目结构 二、路由绑定 1、创建路由 解释&#xff1a; 2、创建实例化模块 3、创建具体事项 4、main中添加注册 一、搭建web项目 1、引入gin依赖 在项目路径下&#xff0c;终端中输入 go get -u github.com/gin-gonic/gin…

语音测试(一)视频转音频

视频转音频 下载ffmpeg工具进入bin目录cmd进入控制台输入命令 ffmpeg.exe -i ./视频.mp4 ./音频.wav

C语言试题(含答案解析)

单选 1.下面C程序的运行结果为&#xff08;&#xff09; int main(void) {printf("%d", B < A);return 0; }A.编译错误 B.1 C.0 D.运行错误 A’的ascii码值为65&#xff0c;‘B’的ascii码值为66&#xff0c;‘B’<‘A’是不成立的&#xff0c;返回0&#xf…

什么是W外链?外链的优势有哪些?

一、定义 定义W 外链是一家企业级在线短链接生成工具&#xff0c;免费的微信获客助手&#xff0c;支持批量短链接网址生成等&#xff0c;还支持自定义域名短链接数据统计等。在链接缩短的同时&#xff0c;支持高并发、防劫持&#xff0c;是专业的在线生成短链接工具。 网络营…

PrimeTime low power-多电压设计流程(3)

4.Golden UPF flow Golden UPF flow是维护设计多电压电源意图的可选方法。它在整个综合、物理实现和验证步骤中使用原始的Golden UPF 文件,以及由综合和物理实现工具生成的supplemental UPF 文件。 图 141 比较了传统的 UPF-prime 流程与Golden UPF 流程。 Golden UPF 流程在…

达梦数据库事务管理

目录 一、事务简介 二、事务特性 1.原子性 2.一致性 3.隔离性 4.持久性 三、事务提交 1.自动提交模式 2.手动提交模式 3.隐式提交 四、事务回滚 1.自动回滚 2.手动回滚 3.回滚到保存点 4.语句级回滚 五、事务锁定 1.锁模式 &#xff08;1&#xff09;共享锁 …

【加密社】马后炮视角来看以太坊二层战略

阅读正文前先给大家普及下知识&#xff0c;以下文章中提到的 Blobs指的是&#xff1a;"Blob Carriers" 或 "Calldata Blobs" 这是在以太坊网络中用于携带数据的一种方式&#xff0c;尤其是在涉及Rollup&#xff08;如Optimistic Rollup和ZK-Rollup&#xf…

【Git】IDEA代码合并|merge into

&#x1f4dd;个人主页&#x1f339;&#xff1a;执键行天涯 ⏩收录专栏⏪&#xff1a;多线程进阶 &#x1f921;往期回顾&#x1f921;&#xff1a;【不安全的集合类】同步容器&#xff08;如ConcurrentHashMap&#xff09;、并发集合&#xff08;如CopyOnWriteArrayList &…

【正点原子K210连载】第三十四章 image图像滤波实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第三十四章 image图像滤波实验 在上一章节中&#xff0c;介绍了image模块中元素绘制方法给的使用&#xff0c;本章将继续介绍image模块中图像滤波方法的使用。通过本章的学习&#xff0c;读者将学习到image模块中图像滤波的使用。 本章分为如下几个小节&#xff1a; 34.1 imag…

【通过h5作为中转页跳转到微信小程序】

1。从小程序跳转小程序内部页面 <!DOCTYPE html> <html><head><title>H5跳转小程序</title><meta charset"UTF-8"><meta name"viewport"content"widthdevice-width, initial-scale1.0, minimum-scale1.0, ma…

【知识库系列】MPR/多模态方向观察:图像视频与3D生成

多模态背后的backbone会长成什么样&#xff1f; 各种模态到梯度下降到最后会不会都差不多&#xff1f; Sora 是不是已经被追上了? 我们真的把视频数据都用好了吗&#xff1f; 知识库完整文档&#xff1a; MPR/多模态方向观察&#xff1a;图像视频与3D生成&#xff1a;https…