MySQL数据库思维导图
2024-02-21 09:52:44 162 举报
AI智能生成
MySQL数据库思维导图是一种可视化工具,用于展示和管理MySQL数据库中的各种元素和关系。它以图形化的方式呈现数据库的结构,包括表、字段、索引、触发器、存储过程等。通过这个思维导图,用户可以清晰地了解数据库的组成部分,以及它们之间的关联和依赖关系。此外,用户还可以利用思维导图进行数据库设计、优化和维护工作,提高数据库的性能和可靠性。总之,MySQL数据库思维导图是一个实用的工具,有助于简化数据库管理过程,提高工作效率。
作者其他创作
大纲/内容
数据类型
数值类型
整型
TINYINT
SMALLINT
MEDIUMINT
INT或INTEGER
BIGINT
浮点型
FLOAT
DOUBLE
DECIMAL(a,b)
字符串类型
字符串
定长
CHAR
变长
VARCHAR
文本数据
短文本<br>
TINYBLOB
TINYTEXT
长文本
BLOB
TEXT
中等长文本
MEDIUMBLOB
MEDIUMTEXT
极大长文本
LONGBLOB
LONGTEXT
日期和时间类型
单一日期
DATE
TIME
YEAR
混合日期<br>
DATETIME
TIMESTAMP
其他
库级操作
创建数据库
修改数据库<br>
删除数据库
进入数据库
表级操作
创建表
修改表<br>
修改数据表
添加单列
添加多列
删除列
添加约束<br>
添加主键约束
添加唯一约束
添加外键约束
添加、删除默认约束
删除约束
删除主键约束
删除唯一约束
删除外键约束
修改列定义
数据表更名
删除表
增加表
查看数据表<br>
查看数据表结构
约束
概念
分类
表级约束
列级约束
非空约束
主键约束
唯一约束
默认约束
外键约束
外键约束的要求
外键约束的参照操作
CASCADE
SET NULL
RESTRICT
NO ACTION
显示索引表
关键字
自动编号
无符号位
Like
limit
distinct
order by<br>
group by 和 having<br>
group by<br>
having<br>
not
[not] between and<br>
[not] in<br>
is [not] null<br>
union
增删改查
增<br>
insert into 表名 (字段,字段)values(值,值)<br>
删<br>
delete from 表名 where 字段 = ?<br>
改
update 表名 set 字段 = 值 where 字段 = ?<br>
查
select * from 表名 where 字段<br>
完整查询
子查询和连接
子查询
规则<br>
返回值
比较运算符
=、>、<、>=、<=、<>、!=、<=>
用ANY、SOME、ALL修饰比较运算符
使用 [NOT] IN 的子查询
使用[NOT]EXISTS的子查询
连接<br>
内连接
外连接
左外连接
右外连接
自身连接
运算符和函数
数值运算符与函数<br>
CEIL()
ROUND()
TRUNCATE()
比较运算符与函数
[NOT] BETWEEN...AND...<br>
[NOT] IN
IS [NOT] NULL<br>
日期时间函数
DATE_ADD()
DATEDIFF()
DATE_FORMAT()
信息函数
LAST_INSERT_ID()
USER()<br>
聚合函数
AVG()<br>
COUNT()
加密函数
MD5()
PASSWORD()
自定义函数<br>
事务
作用
特性AICD
原子性<br>
一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成
事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性
在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
隔离性
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
持久性
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
日志
redo log<br>
作用
组成
redo log buffer<br>
redo log file <br>
undo log<br>
作用
log group<br>
作用
支持日志组镜像
作用
事务的隔离级别
读未提交
读已提交
可重复读
串行化
隔离对应问题
脏读
脏读发生在一个事务A读取了被另一个事务B修改,但是还未提交的数据。
不可重读
在一个事务内两次读到的数据不一致
幻读<br>
概念
mysql单表瓶颈500万数据,单库瓶颈5000万
逻辑架构<br>
<img class="se-f38619b1" src="https://static001.geekbang.org/resource/image/0d/d9/0d2070e8f84c4801adbfa03bda1f98d9.png" style="border: 0px; vertical-align: top; max-width: 80%; border-radius: 6px; background-color: rgb(238, 238, 238); color: rgb(53, 53, 53); font-family: "PingFang SC", "Lantinghei SC", "Microsoft Yahei", "Hiragino Sans GB", "Microsoft Sans Serif", "WenQuanYi Micro Hei", Helvetica, sans-serif; font-size: 17px; text-align: center; white-space: pre-wrap;">
架构
连接器
什么是长连接和短连接?
长连接积累过多,可能出现内存占用太大
查询缓存
缓存中存储数据结构?
为什么建议少使用查询缓存?
分析器
词发分析
语法分析
优化器
执行器
执行器执行流程
执行器扫描多少行?
子主题
6:存储引擎按执行计划分类型执行
7:将结果存入缓存
8:返回结果给java程序
利用show profile可以查看执行周期<br>
命中缓存需要SQL一模一样
MySQL存储引擎
概念
分类
MyISAM和InnoDB区别<br>
InnoDB
支持外键和事务<br>
行锁,适合高并发操作
缓存索引和真实数据,对内存要求高;而且内存大小对性能有决定性影响
子主题
MyISAM<br>
不支持外键和事务
表锁
只缓存索引,不缓存真实数据
系统自带表使用该引擎
存储引擎类型
InnoDB引擎
MyISAM引擎
Archive引擎
档案引擎
CSV引擎
将普通的csv文件作为mysql的表来处理,不支持索引
Memory引擎
缓存引擎<br>
Federated引擎
联合引擎,访问其他mysql服务器的一个代理
索引
概念
mysql高效获取数据的数据结构<br>
优缺点
优点<br>
提高数据检索效率
降低数据排序成本
缺点
降低更新表的速度
占用空间更大
在有限内存下,Mysql选择的看似效率比BTree效率低的<font color="#f15a23">B+Tree</font>,同样情况下,B+Tree比BTree少1/3的IO次数
分类
聚簇索引
主键索引
非聚簇索引
非主键索引
按数据结构分
Btree索引<br>
适用不同场景,可以线性查找<br>
hash索引
优缺点
按种类分
普通索引
唯一索引
全局索引
联合索引
左前缀原则
B树
B树-二叉搜索树
二叉树最好的情况是平衡二叉树,最坏的情况是链表,所以不适用于mysql索引的数据结构
B-树(BTree)-多路平衡搜索树
每个节点中包含数据、指向数据的指针、及指向下一节点的指针
所有的叶子节点都在同一层
B+树
节点中不包含指向数据的指针,数据都在叶子节点中存储
与B-区别
特性
应用
B*树
其他
主键自带索引,其他字段自己加。
范式
三大范式<br>
第一范式-单表
第二范式-单表
第三范式-多表
BC范式-多表
第四范式-多表
拓展
视图
优缺点
优点
简单性
安全性
逻辑独立性
缺点
性能差
增删改极其麻烦
创建视图
语法结构
释义
存储过程
优缺点
优点
缺点
命令
查看所有存储过程命令
查看存储过程或函数的创建代码
调用存储命令
删除存储过程命令
创建存储过程
MySQL语句执行过程
触发器
按时机分
前触发器
后触发器<br>
按操作分
insert
update
delete
图形化管理工具
Navicat
phpMyAdmin
MySQL Workbench
数据库优化<br>
注意
稳定性和业务可持续性,通常比性能更重要
优化使性能变好,维持和变差是等概率事件
优化不可避免涉及到变更,变更就有风险
优化方面
安全
数据可持续性
性能
数据的高性能访问
优化维度
硬件
系统配置
数据库表结构
SQL及索引
优化选择
优化成本
硬件>系统配置>数据库表结构>SQL及索引
优化效果
硬件<系统配置<数据库表结构<SQL及索引
具体方法
字段选择合适的类型<br>
添加合适的索引<br>
表设计遵从范式<br>
模糊查询左原则
即LIKE中的开头为通配符不能使用索引
常用语句
select version();<br>
select now();<br>
select user();
dual虚表
语句规范
关键字与函数名称全部大写
数据库名称,表名称,字段名称必须小写
SQL语句必须以分号结尾
0 条评论
下一页