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


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 引擎可以通过简单的文件复制来进行数据备份和恢复,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Tomkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值