云计算学习100天-第45天-MySQL数据库学习1
目录
概念
数据库分类
数据库:在服务端实现数据存储的一类软件的统称
关系型数据库:
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
缺点:
降低更新表的速度
索引文件占用磁盘空间
如果某个列包含许多重复内容,建立索引就没啥效果
对于非常小的表,全表扫描更高效
更多推荐



所有评论(0)