当前位置: 首页 > news >正文

云原生俱乐部-mysql知识点归纳(1)

本来想在写mysql之前先把shell写完的,但是当我看到shell中的函数和变量的时候,我想还是等等再写吧,因为不太熟,这样子写很煎熬。至于mysql的话,更多的则是理论,很多知识点都需要记住的,大部分时候都会问到。


这个章节主要讲讲理解MySQL体系结构以及配置MySQL两部分内容,在前半部分,主要讲的是mysql如何处理、存储和传输数据,并且会描述数据字典,mysql如何使用内存等,后半部分则是关于mysql服务器的配置文件。

理解MySQL体系结构

mysql的需要安装服务端和客户端,两者可以分开按需安装。mysql服务端进程(mysqld)有个连接层会处理客户端的连接,它实质上是一个多线程的单进程服务,管理对磁盘和内存中的数据库访问。

[1]mysqld服务进程

前面说到,mysqld进程有连接层,其实还有SQL层和存储层,属于三层架构体系。在连接层中,会处理和客户端的通信协议,如tcp socket或者本地unix socket。

默认选项是-h localhost,使用本地unix socket,这种方式的效率比较高,因为数据不用加密,也不会发送到网络上传输,因此也不会经过防火墙,不过选项-h 127.0.0.1则是通过tcp socket访问。

接着是SQL层,SQL层的内容包括解析SQL语句,验证连接的用户是否有足够的权限执行语句,并且会为每个查询语句创建最佳执行计划。SQL层还会记录查询日志,用于审计分析。

最后是存储层,InnoDB是默认的存储引擎,并且推荐使用。存储层执行实际的数据操作,通过访问存储介质并执行解析后的SQL语句。

[2]数据库的定义

InnoDB引擎基于磁盘,支持外键约束和事务,并且支持行级锁定;MEMORY引擎则是基于内存,数据在服务器重启后不可用。那么mysql的数据(基于InnoDB)究竟放在哪里呢?答案是/var/lib/mysql目录中。

每个数据库都会在该目录有个目录,用于存储特定的数据文件,如.ibd文件,包含表数据和元数据。元数据包括列定义,索引定义等,用于定义数据的结构、属性、关系和约束条件。

在数据库中,元数据相当于系统的“蓝图”,记录所有数据库对象的定义信息,数据字典则是包含所有元数据的档案资料库。​​

表空间是 MySQL 中​​存储表数据和索引的物理文件​,是数据库中的逻辑存储单元(如test库),对应磁盘上的一个或多个文件(如.ibd文件)。系统表空间默认名为ibdata1,存储数据字典和缓冲区。

配置MySQL​

配置文件是描述mysqld服务是怎么运行的,包括数据目录,日志目录的位置,系统变量值等等。

[1]设置加载的配置文件

在linux系统中,默认的配置文件是/etc/my.cnf,家目录的~/.mf.cnf优先级也更高。可以通过--defaults-file在mysqld运行时从指定的配置文件中获取配置,通过--datadir=指定数据目录。

当然这个配置文件还可以定义客户端如何运行,编辑mf.cnf文件的[mysql]选项组,可以约束mysql客户端登录的行为,甚至可以将账号密码写上去。也可以使用mysql_config_editor来设置账号密码,默认保存在~/.mylogin.cnf文件中,并且使用cat查看乱码。

[2]查看和修改系统变量

系统变量主要包括全局和会话两种,使用show variables 来查看变量(默认是session,使用show global查看全局),使用set global来修改全局变量。不过这些都是动态修改的参数,随mysqld重启而丢失。

使用set persist则是永久修改,会记录到配置文件中,同时可以用reset persist动态撤销修改。`mysqld-auto.cnf`是 MySQL 8.0+ 引入的​动态持久化配置文件​​,用于存储通过 `SET PERSIST`或 `SET PERSIST_ONLY`命令修改的全局变量。

http://www.dtcms.com/a/336916.html

相关文章:

  • 《亚矩阵云手机重构出租接单:KVM 虚拟化与边缘计算驱动的设备替代技术路径》
  • 8.18决策树
  • 性能测试(Jemter)
  • grep命令要点、详解和示例
  • 基于nvm安装管理多个node.js版本切换使用(附上详细安装使用图文教程+nvm命令大全)
  • QT第九讲- 控件委托
  • Git智能合并机制深度解析
  • ChatGPT-5 对教育行业的影响与案例研究
  • Qt笔试题
  • 录像视频删除如何恢复?手机电脑的录像恢复技巧
  • 给linux的root磁盘扩容
  • 手游搬砖对云手机的需求有哪些?
  • 机器学习实例应用
  • 获粤港澳大湾区碳足迹认证:遨游智能三防手机赋能绿色通信
  • VLN视觉语言导航(3)——神经网络的构建和优化 2.3
  • 二十八、案例-部门管理-查询
  • Android中flavor的使用
  • 项目实战——矿物识别系统(利用机器学习从化学元素数据中识别矿物,从数据到分类模型)
  • 咨询进阶——解读咨询顾问技能模型
  • NL2SQL 技术深度解析与项目实践
  • Jmeter对图片验证码的处理
  • single cell ATAC(5)使用ArchR聚类
  • CentOS 7.9 部署 filebrowser 文件管理系统
  • 深入解析 Qwen3 GSPO:一种稳定高效的大语言模型强化学习算法
  • 运维命令基础
  • 算法魅力-BFS解决多源最短路
  • PPT生成视频的AI大模型应用技巧
  • 基于51单片机霍尔测速仪表测转速调速系统设计
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频内容理解与智能预警升级(401)
  • Java封装