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

news2024/11/13 10:08:23

文章目录

  • 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.coloradmin.cn/o/2103434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Echarts可视化

echarts是一个基于javascripts的开源可视化图表库 画图步骤&#xff1a; 1.引入echarts.js文件 <script src" https://cdn.jsdelivr.net/npm/echarts5.5.1/dist/echarts.min.js"></script> 也可将文件下载到本地通过src引入。 2. 准备一个呈现图表的…

spring boot3框架@Validated失效

项目中使用的springboot3.2.1,在使用Validated校验controller里参数时始终不生效&#xff1b;在网上查了相关资料&#xff0c;添加了spring-boot-starter-validation依赖但还是不行 经过层层调试&#xff0c;终于发现问题&#xff1b; springboot3添加Validated后校验的是 ja…

唯众2024年高职云计算实训室方案解读

一、引言 1.1 云计算技术的发展背景 云计算技术自本世纪初开始迅速发展&#xff0c;已经成为信息技术产业的重要组成部分。随着数据量的爆炸性增长和互联网技术的不断进步&#xff0c;云计算提供了灵活、可扩展的计算资源&#xff0c;为企业和个人用户提供了按需使用计算资源…

设计模式 -- 观察者模式(Observer Pattern)

1 问题引出 1.1 天气预报项目需求 气象站可以将每天测量到的温度&#xff0c;湿度&#xff0c;气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。 需要设计开放型 API&#xff0c;便于其他第三方也能接入气象站获取数据。 提供温度、气压和湿度的接口 测量数据…

C语言指针进阶二:(函数指针数组,转移表)

函数指针数组 函数指针数组就是存放函数指针的一个数组&#xff0c;数组里都是函数指针&#xff0c;那么该怎么定义: int (*parr[10])(); 因为 [] 的优先级高于 * &#xff0c;所以parr先与 [] 结合说明是一个数组&#xff0c;元素类型是 int(*)() 的函数指针。 函数指针…

Tool-SQL:基于Agent智能体的Text2SQL解决方案,显著提升Text2SQL效果

Tool-SQL&#xff1a;基于Agent智能体的Text2SQL解决方案&#xff0c;显著提升Text2SQL效果 近期&#xff0c;Text-to-SQL 技术通过整合数据库系统的反馈&#xff0c;有效利用了大型语言模型&#xff08;LLMs&#xff09;。尽管这些技术能有效纠正 SQL 查询的执行错误&#xff…

计算机工具软件安装攻略:Visual Studio Code下载

Visual Studio Code下载、安装和使用 1 Visual Studio Code简介 Visual Studio Code通常简称为VS Code&#xff0c;是一款由微软开发的免费、开源的轻量级代码编辑器。它在开发者社区中非常受欢迎&#xff0c;具有强大的功能和扩展性&#xff0c;适用于多种编程语言和开发场景…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑极端事件的电力系统惯量与一次调频备用联合规划配置方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

统计学习与方法实战——统计学习方法概论

统计学习方法概论题 统计学习方法概论实现统计学习方法的步骤统计学习方法三要素模型策略损失函数与风险函数定义 常用损失函数经验风险最小化(ERM)与结构风险最小化(SRM) 模型评估与模型选择过拟合与模型选择 正则化与交叉验证泛化能力生成模型与判别模型生成方法判别方法 最小…

制定精益生产现场管理和改善计划时,企业需要考虑哪些因素

在制定精益生产现场管理与改善计划时&#xff0c;企业需综合考虑多个维度&#xff0c;以确保计划既能高效实施&#xff0c;又能持续推动生产流程的优化与效率提升。以下是深圳天行健企业管理咨询公司对这一过程中需重点考虑因素的详细阐述&#xff1a; 一、企业现状 1. 生产流…

Datawhale X李宏毅苹果书进阶 AI夏今营 task03学习笔记

batch normalization(批次标准化&#xff09; batch normalization--Tarining 直接改error surface的landscape&#xff0c;把山“铲平”有时候尽管error surface是个“碗”&#xff0c;都不见得好train。如下图所示&#xff1a; w1,w2对loss的斜率差别很大&#xff0c;w1方…

解锁SQL无限可能 | 利用SQL实现13位条码检测算法

目录 0 需求分析 1 数据准备 2 问题分析 3 小结 数字化建设通关指南专栏原价99&#xff0c;现在活动价39.9&#xff0c;按照阶梯式增长&#xff0c;直到恢复原价 0 需求分析 算法&#xff1a;给定一个n位的数字字符串&#xff0c;取出这个条码字符串的前n-1位数字&…

Elasticsearch数据写入过程

1. 写入请求 当一个写入请求&#xff08;如 Index、Update 或 Delete 请求&#xff09;通过REST API发送到Elasticsearch时&#xff0c;通常包含一个文档的内容&#xff0c;以及该文档的索引和ID。 2. 请求路由 协调节点&#xff1a;首先&#xff0c;请求会到达一个协调节点…

Linux:目录及文件管理

目录及文件管理 cd的命令使用 . 当前目录 .. 父目录&#xff08;上一层&#xff09; ~ 表示家目录 家目录&#xff1a;专门存放用户个性化信息的目录 ~user&#xff1a;用户user的家目录 /root: 是Linux管理员的家目录 /home: 存放所有普通用户的家目录]# cd ~root #去…

Leetcode面试经典150题-106.从中序和后序序列构造二叉树

解法都在代码里&#xff0c;不懂就留言或者私信 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNo…

作为HR如何解决薪资谈判的僵局

作为HR如何跟候选人谈薪资问题&#xff0c;特别候选人的期望值&#xff0c;和公司对岗位的设定范围存在不对等的情况下&#xff0c;HR和候选人的薪资谈判往往就陷入僵局。面对这种情况&#xff0c;是直接放弃&#xff0c;还是有努力的空间呢&#xff1f; 在面对薪资谈判僵局时…

基于tesseract实现文档OCR识别

导入环境 导入必要的库 numpy: 用于处理数值计算。 argparse: 用于处理命令行参数。 cv2: OpenCV库&#xff0c;用于图像处理。 import numpy as np import argparse import cv2设置命令行参数 ap argparse.ArgumentParser() ap.add_argument("-i", "--imag…

中国各省份-环境规制相关数据(2000-2022年)

环境规制&#xff0c;也称为环保政策和污染治理&#xff0c;是一系列由政府制定的旨在解决环境问题、保护生态环境和促进可持续发展的政策措施。这些措施包括法律法规、行政命令、经济激励和市场机制等&#xff0c;目的是约束和指导企业和个人行为&#xff0c;减少对环境的负面…

【吊打面试官系列-Redis面试题】Redis 的同步机制了解么?

大家好&#xff0c;我是锋哥。今天分享关于 【Redis 的同步机制了解么&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; Redis 的同步机制了解么&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 可以使用主从同步&#xff0c;从从同…

Linux运维--iptables防火墙命令以及端口号等详解(全)

Linux之iptable防火墙命令以及端口号等详解&#xff08;全&#xff09; 在Linux系统中&#xff0c;你可以使用firewalld和iptables来管理和设置防火墙规则。Firewalld是一个动态管理防火墙的工具&#xff0c;而iptables是一个更底层的工具&#xff0c;可以直接配置Linux内核的…