首页 > 数据库 >mysql 8.0 的 建表 和八种 建表引擎实例

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

时间:2024-09-04 22:52:41浏览次数:8  
标签:COMMENT 8.0 存储 建表 查询 引擎 MyISAM mysql 数据

文章目录


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引擎

一般是系统使用的表引擎

标签:COMMENT,8.0,存储,建表,查询,引擎,MyISAM,mysql,数据
From: https://blog.csdn.net/tomxjc/article/details/141823759

相关文章

  • HBase 源码阅读(三)创建表流程
    前言上两篇介绍了HMaster完整进程的启动,现在开始介绍一下HMaster创建表的流程1.创建表的流程下面这一部分通过ChatGPT来生成在HBase中,通过Java编写创建表的过程涉及多个组件和源码的位置。这里为您详细解析这个过程涉及的主要类和方法。API层级的调用:用户首先......
  • 2024.08.03米哈游秋招第一场
    1.数组价值米小游有一个长度为n的数组,其中第i个元素为ai。现在定义数组的价值是最大的相邻数字的乘积。例如数组为[3,5,1,2],相邻元素的乘积分别是35=15,51=5和1*2=2,则数组的价值是这些数字中的最大值,即15。现在米小游想要任选数组中的某两个相邻的元素进行交换(你必......
  • 第十讲:为什么我的MySQL会“抖”一下?
    目录第十讲:为什么我的MySQL会“抖”一下?图概:提出现实问题:SQL执行的时候特别快,有时变得特别慢原因:为什么有时会“flush”呢?第一种场景,粉板满了,记不下了。第二种场景,要记住的事情太多,自己快记不住了,找账本把这笔账先加进去。第三种场景是,生意不忙,打烊之后柜台没事,掌柜闲着也是闲......
  • MySQL常用窗口函数总和
    在MySQL中,窗口函数是一类用于在查询结果集中计算值的函数,允许用户根据数据行进行聚合或排序操作,同时保留行的详细信息。窗口函数在分析数据时非常有用,因为它们允许您在不缩小结果集的情况下对数据进行复杂的计算。常见的窗口函数包括:ROW_NUMBER()RANK()DENSE_RANK()NTILE(......
  • MySQL insert sql 返回自增id
    xml<insertid="addMain"useGeneratedKeys="true"keyColumn="id"keyProperty="id"parameterType="com.hopedove.coreserver.vo.vpm.ForeignTradeOutboundOrderVO">insertintoaps_foreign_trade_ex......
  • Linux宝塔Mysql两台服务器主从配置,服务器存在多个库
    实现目标:两台服务器(一台为从服务器,一台为主服务器),当主服务器的数据修改,从服务器复制主服务器的操作,实现自动修改数据;1、主数据库操作-先登录主数据库#登录数据库,用root登录方便,用其他账号会提示权限不足,需要登录root给予权限mysql-uroot-p密码2、创建一个账号,供从库用......
  • 构建专业技能:MySQL数据备份策略的培训与实践
    数据备份是数据库管理中的一项基础且关键的任务,它直接关系到数据安全和业务连续性。在MySQL环境中,有效的数据备份策略培训对于确保团队成员能够正确执行备份操作、理解备份原理以及在必要时进行数据恢复至关重要。本文将详细介绍如何在MySQL中实现数据备份的策略培训,包括培......
  • 优化MySQL数据备份的网络策略:技术与实践
    在当今的数据库管理实践中,数据备份是确保数据安全性和业务连续性的关键环节。MySQL作为广泛使用的数据库系统,其数据备份过程往往涉及大量的数据传输,尤其是在分布式或云环境中。因此,网络优化在MySQL数据备份中扮演着至关重要的角色。本文将探讨如何在MySQL中实现数据备份的网......
  • MySQL(二)函数
    聚合函数1、AVG()函数返回数值列的平均值SELECTAVG(column_name)FROMtable_name2、COUNT()函数返回匹配指定条件的行数(1)返回指定列的值的数目(NULL不计入)SELECTCOUNT(column_name)FROMtable_name;(2)返回表中的记录数SELECTCOUNT(*)FROMtable_name;(3)返回指......
  • MySQL 2003 - Can’t connect to MySQL server on ' '(10060)
    2003-Can’tconnecttoMySQLserveron''(10060) 一般是以下几个原因造成的:1.网络不通畅2.mysql服务未启动3.防火墙未开放端口4##云服务器的安全组规则未设置  一般是以下几个原因造成的:1.网络不通畅:【mysql-u-p,看看能不能登陆】2.mysql服务未启动:【mysql-u-p,......