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