MySQL数据库笔记
文章平均质量分 85
B站:https://www.bilibili.com/video/BV1Kr4y1i7ru/?spm_id_from=333.337.search-card.all.click&vd_source=e6
渣渣测试007
这个作者很懒,什么都没留下…
展开
-
01.MySQL课程介绍
MySQL默认InnoDB引擎的索引是什么数据结构?InnoDB与MyISAM的区别?事务的隔离级别有哪些,MySQL默认是哪个?什么是事物,以及事务的四大特性?MySQL主从复制的原理是什么?主从复制之后的读写分离如何实现?内连接与左外连接的区别是什么?如何查看MySQL的执行计划?数据库的分库分表如何实现?索引失效的情况有哪些?原创 2023-06-01 14:13:31 · 97 阅读 · 0 评论 -
02.基础—MySQL概述
下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html。本课程采用的是MySQL的最新社区版(MySQL Community Server8.0.26)概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。2.使用SQL语言操作,标准统一,使用方便。1.使用表存储数据,格式统一,便于维护。注意:使用这种方式时,需要配置PATH环境变量。方式一:MySQL提供的客户端命令行工具。方式二:系统自带的命令行工具执行指令。原创 2023-06-01 16:08:47 · 37 阅读 · 0 评论 -
03.基础—SQL
查询所有数据库CREATE DATABASE 数据库名;创建数据库USE 数据库名;使用数据库选择数据库DROP DATABASE 数据库名;删除数据库DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。添加数据(INSERT)修改数据(UPDATE)删除数据(DELETE)idnameagegender1令狐冲23男2风清扬68男3东方不败32男。原创 2023-06-01 17:54:22 · 868 阅读 · 0 评论 -
04.基础—函数
是指一段可以直接被另一段程序调用的程序或代码。原创 2023-06-07 15:14:31 · 171 阅读 · 1 评论 -
05.基础—约束
1.概述:约束说作用于表中字段上的规则,用于限制存储在表中的数据。2.目的:保证数据库中数据的正确、有效性和完整性。约束描述关键字非空约束限制该字段的数据不能为nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键是一行数据的唯一标识,要求非空且唯一默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT检查约束(8.0.16版本之后)保证字段值满足某一个条件CHECK外键约束。原创 2023-06-07 17:53:57 · 199 阅读 · 1 评论 -
06.基础—多表查询
一对多(多对一)多对多一对一指从多张表中查询数据。原创 2023-06-13 13:02:34 · 504 阅读 · 1 评论 -
07.基础—事务
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。原创 2023-06-14 11:09:59 · 27 阅读 · 0 评论 -
08.进阶—存储引擎
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。1.在创建表时,指定存储引擎CREATE TABLE 表名(字段1 字段1类型 [COMMENT 字段1注释],...字段1 字段1类型 [COMMENT 字段1注释],)ENGINE = INNODB [COMMENT 表注释];2.查看当前数据库支持的存储引擎案例--查询建表语句. --默认存储引擎:InnoDB--查询当前数据库支持的存储引擎。原创 2023-06-14 13:11:29 · 46 阅读 · 0 评论 -
09.进阶—索引
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。原创 2023-06-16 17:54:42 · 50 阅读 · 0 评论 -
10.进阶—SQL优化
一个常见又非常头疼的问题就是limit2000000,10,此时需要MySQL排序前2000010记录,仅仅返回2000000-2000010的记录,其他记录丢弃,查询排序的代价非常大。:通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫FileSort排序。count()是一个聚合函数,对于返回的结果集,一行行地判断,如果count函数的参数不是NULL,累计值就加1,否则不加,最后返回累计值。原创 2023-06-20 16:23:03 · 483 阅读 · 1 评论 -
11.进阶—视图/存储过程/触发器
视图是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用。原创 2023-06-29 13:32:49 · 195 阅读 · 0 评论 -
12.进阶—锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻 塞。原创 2023-06-30 15:18:22 · 34 阅读 · 0 评论 -
13.进阶—InnoDB引擎
更改缓冲区(针对于非唯一二级索引页),在执行DML语句时,如果这些数据Page没有在Buffer Pool中,不会直接操作磁盘,而会将数据变更存在更改缓冲区Change Buffer中,在未来数据被读取时,再将数据合并恢复到Buffer Pool中,再将合并后的数据刷新到磁盘中。:缓冲池是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),然后再以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度。原创 2023-07-17 16:57:30 · 36 阅读 · 0 评论 -
14.进阶—MySQL管理
由于服务器生成的二进制日志文件以二进制格式保存,所以如果想要检查这些文本的文本格式,就会使用到mysqlbinlog日志管理工具。-e选项可以在Mysql客户端执行SQL语句,而不用连接到MySQL数据库再执行,对于一些批处理脚本,这种方式尤其方便。备份内容包含创建表,及插入表的SQL语句。mysqladmin是一个执行管理操作的客户端程序。mysqlshow客户端对象查找工具,用来很快地查找存在哪些数据库、数据库中的表、表中的列或者索引。该mysql不是指mysql服务,而是指mysql的客户端工具。原创 2023-07-19 17:50:44 · 38 阅读 · 0 评论 -
15.运维—日志
二进制日志(BINLOG)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。作用:(1)灾难时的数据恢复;(2)MySQL的主从复制。原创 2023-07-19 19:42:12 · 47 阅读 · 0 评论 -
16.运维—主从复制
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。主库出现问题,可以快速切换到从库提供服务。实现读写分离,降低主库的访问压力。可以在从库中执行备份,以避免备份期间影响主库服务。原创 2023-07-19 22:00:15 · 58 阅读 · 0 评论 -
17.运维—分库分表
IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。请求数据太多,带宽不够,网络IO瓶颈。CPU瓶颈:排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。分库分表的中心思想都是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。Mycat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用mycat,对于开发人员来说根本感觉不到mycat的存在。原创 2023-07-31 15:52:13 · 83 阅读 · 0 评论 -
18.运维—读写分离
读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。通过MyCat即可轻易实现上述功能,不仅可以支持MySQL,也可以支持Oracle和SQL Server。一个主机Master1用于处理所有写请求,它的从机Slave1和另一台主机Master2还有它的从机Slave2负责所有读请求。当Master1主机宕机后,Master2主机负责写请求,Master1、Master2互为备机。原创 2023-07-31 20:01:17 · 51 阅读 · 0 评论