目录

概念

数据库分类

MySQL数据库相关信息

数据类型

mysql数据库的图形化工具

Mysql体系架构

事务

特性:

分类:

建表范式

第一范式(1NF)

第二范式(2NF)

第三范式(3NF)

索引

索引分类

优点:

缺点:


概念

数据库分类

数据库:在服务端实现数据存储的一类软件的统称

关系型数据库:

1、数据持久化存储

2、数据结构化存储

3、数据与数据之间可以建立关联关系

4、通常具备体系化的SQL语句

非关系型数据库:

1、数据灵活存储

2、数据通常存储于内存

3、通常不具备体系化的SQL语句

关系型数据库:Mysql、SQL Server、Oracle‌、PostgreSQL

非关系型数据库:Redis、MongoDB、HBase

MySQL数据库相关信息

服务端口:3306

管理端口:33060

数据库目录:/var/lib/mysql

进程名:mysqld

配置文件目录:/etc/my.cnf.d/

主配置文件:mysql-server.cnf

传输协议:TCP

错误日志文件:/var/log/mysql/mysqld.log

主配置文件默认配置:

datadir                  数据库目录路径

socket                   socket文件路径

log-error                错误日志文件路径

pid-file                  存放数据库服务进程的PID号、文件名及存放位置

默认4个库不可以删除,存储的是服务运行时加载的不同功能的程序和数据。

information_schema:是MySQL数据库提供的一个虚拟的数据库,存储了MySQL数据库中的相关信息,比如数据库、表、列、索引、权限、角色等信息。它并不存储实际的数据,而是提供了一些视图和存储过程,用于查询和管理数据库的元数据信息。

mysql:存储了MySQL服务器的系统配置、用户、账号和权限信息等。它是MySQL数据库最基本的库,存储了MySQL服务器的核心信息。

performance_schema:存储了MySQL数据库的性能指标、事件和统计信息等数据,可以用于性能分析和优化。

sys:是MySQL 8.0引入的一个新库,它基于information_schema和performance_schema视图,提供了更方便、更直观的方式来查询和管理MySQL数据库的元数据和性能数据。

数据类型

数值类型:

tinyint

smallint

mediumint

int

bigint

folat    单精度  4字节

double  双精度 8 字节

decimal

日期和时间类型:

date 

time

year

datatime

timestamp

字符串类型:

char     定长  范围:1~255

varchar  变长   范围:1~65532

text 

blob 

enum    枚举型 字段值仅能在范围内选择一个

set      枚举型字段值仅能在范围内选择一个或多个

布尔类型:

bool 

Boolean

json类型

空间类型

自定义类型:通过create type语句创建

扩展数据类型:数组 xml gis

unsigned 无符号标记

mysql数据库的图形化工具

phpMyAdmin-5.2.1

Mysql体系架构

连接池:存储所有的连接,负责与客户端交互

管理工具:mysqladmin  mysqldump

sql端口

解析器

查询优化器:负责执行计划优化

缓存:已经被淘汰

存储引擎:InnoDB(默认) MyISAM  Memory

系统文件和日志

事务

数据库操作的逻辑的单元,具备ACID特性,确保数据的一致性。

针对DML,一组sql语句要么全部执行,要么全部不执行,保证数据的准确性。

特性:

原子性 操作要么全部执行,要么全部不执行

一致性 事务完成时必须所有数据都保持一致状态

隔离性 多个事务的执行时互不干扰的

持久性 事务一旦提交或回滚,它对数据库中的数据的改变时永久的

分类:

显式事务

隐式事务:命令行操作

建表范式

有6个等级:

1NF 2NF 3NF 4NF 5NF BCNF

第一范式(1NF)

‌核心要求‌:确保每列数据保持原子性,所有字段不可再分解‌

‌示例‌:将"userInfo: '山东省烟台市 13181621008'"拆分为"userAds: '山东省烟台市'"和"tel: '13181621008'"‌2

‌优点‌:减少数据冗余,更利于数据维护和更新‌

第二范式(2NF)

‌核心要求‌:满足1NF基础上,要求表中所有列必须完全依赖于主键‌12

‌常见错误‌:复合主键表中存在仅依赖部分主键的字段(如商品名称仅依赖商品编号而非订单编号)‌

‌优点‌:利于维护和修改,避免数据不一致‌

第三范式(3NF)

‌核心要求‌:满足2NF基础上,消除传递依赖(即非主键列之间不应存在依赖关系)‌

‌示例‌:订单表中不应直接存储客户信息,而应通过用户ID关联客户表‌

‌优点‌:实现列与非主键列的解耦,修改字段不影响其他字段‌

索引

快速查找数据并且排序的一种数据结构

mysql索引的结构:Btree  B+Tree、Hash

索引分类

按作用效果分类:

普通索引  index 索引标志MUL

唯一索引  使用unique参数设置 索引标志UNI

主键索引  标志 PRI

按存储形式分类:

聚簇索引: 数据和索引在一起

非聚簇索引: 数据和索引不在一起

按数据结构分类:

树型索引: btree  b+tree  正排表:根据行号查找内容

哈希索引:  hash

全文索引  用于全文搜索 使用fulltext参数设置,只支持char、varchar、text类型的字段

空间索引

按作用字段分类:

单列索引  只对应一个表头

多列索引  在表的多个表头上创建一个索引

优点:

提高检索速度

减小服务器需要扫描的数据量

避免排序和临时表

将随机10变成顺序10

缺点:

降低更新表的速度

索引文件占用磁盘空间

如果某个列包含许多重复内容,建立索引就没啥效果

对于非常小的表,全表扫描更高效

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐