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

MySQL入门指南:从安装到工作原理

什么是MySQL

MySQL是一个开源关系型数据库管理系统,由瑞典MySQL AB公司开发(目前属于Oracle公司),被广泛地应用在大中小型网站中

MySQL是一个小型的开源的关系型数据库管理系统,与其他大型数据库管理系统例如:Oracle、DB2、SQL Server等相比,MySQL规模小、功能有限,但是它体积小、速度快、成本低,并且提供的功能对稍微复杂的应用已经够用,这使得MySQL成为世界上最受欢迎的开放源代码数据库

MySQL版本

针对不同的用户,MySQL分为两个不同的版本:

  • MySQL社区版:该版本完全免费,但是官方不提供技术支持
  • MySQL企业版:为企业提供数据库应用,支持ACID事务处理,提供完整的提交、回滚、崩溃恢复和行政锁定功能,需要付费使用,官方提供技术支持

另外由于MySQL是开源的,企业也可以根据项目需要定制自己的MySQL

MySQL安装、配置与连接

MySQL不同平台安装参考:MySQL 教程

另一种安装MySQL的方式是安装小皮面板,在小皮面板内部安装、连接、管理MySQL

可以在软件管理部分按照、卸载不同版本的MySQL

可以在数据库部分设置数据库用户名和密码

可在首页相应数据库配置数据库信息,比如数据库端口号

配置MySQL环境变量:

  1. 找到MySQL安装路径:从小皮面板的下载文件夹中,确认MySQL的具体安装目录,比如:C:\phpstudy_pro\Extensions\MySQL8.0.26
  2. 打开环境变量设置:在Windows系统中,通过控制面板 - 系统 - 高级系统设置,点击环境变量按钮,或者直接在此电脑上右键,选择属性,然后在弹出的窗口中点击 高级系统设置,再点击环境变量
  3. 配置 Path 变量:在系统变量中找到Path变量并双击打开,点击新建,将找到的MySQL 安装路径下的bin目录路径添加进去,例如C:\phpstudy_pro\Extensions\MySQL8.0.26\bin,点击确定保存设置,关闭所有环境变量设置窗口
  4. 验证配置:打开命令提示符(CMD),输入mysql -V(注意 V 大写),如果能显示MySQL的版本信息,说明环境变量配置成功

选择MySQL版本后点击启动按钮,即可启动MySQL服务

如果配置了MySQL环境变量就可以在命令行窗口中输入以下指令访问MySQL

mysql -u用户名 -p密码

在MySQL输入符后输入exitquit即可退出MySQL

MySQL工作原理

  • 客户端与服务端连接:操作MySQL数据库时,首先需要通过客户端工具(如命令行客户端、Navicat、SQLyog等图形化界面工具 ,或编程接口如JDBC、ODBC等)连接到MySQL服务端,连接过程一般包含以下步骤:
  1. 建立网络连接:客户端与MySQL服务端(进程名为mysqld)基于TCP/IP协议建立网络连接
  2. 身份验证:服务端对客户端发送过来的用户名和密码进行验证,只有验证通过,客户端才能获得访问数据库的权限,此外,服务端还会根据用户权限表,判断该用户对特定数据库、表等对象拥有哪些操作权限(如查询、插入、修改、删除等)
  • 查询处理:客户端成功连接并发送SQL查询语句后,MySQL服务端会按以下流程处理:
  1. 查询解析:服务端的查询解析器将SQL语句解析成内部的解析树结构,检查SQL语句的语法是否正确,比如关键字拼写是否正确、括号是否匹配等,如果语法有误,会返回错误信息给客户端
  2. 查询优化:查询优化器会根据解析树生成多种可能的执行计划, 并基于统计信息(如索引的使用情况、表的行数等)评估每个执行计划的成本,选择成本最低(效率最高)的执行计划,例如,对于SELECT * FROM users WHERE age > 18;这样的查询,优化器会判断是否使用age字段上的索引能更快获取数据
  3. 查询执行:执行器根据优化器生成的执行计划,调用存储引擎提供的接口来访问和操作数据,比如,执行器调用InnoDB存储引擎的接口去读取符合条件的数据行
  • 存储引擎工作机制:MySQL支持插件式的存储引擎架构,不同的存储引擎决定了数据的存储方式、索引结构以及事务处理等特性,常见存储引擎有InnoDB、MyISAM等 :
  1. InnoDB:是MySQL默认的存储引擎,支持事务,遵循ACID特性。它使用聚簇索引(基于主键构建),数据和索引紧密结合存储,适合处理高并发的读写操作,尤其是涉及事务的场景,如电商的订单处理、银行的转账业务等,此外,InnoDB有缓冲池机制,会把经常访问的数据和索引缓存到内存中,以减少磁盘I/O操作 ,提升查询性能
  2. MyISAM:不支持事务,适合以读操作和插入操作为主的场景,比如日志记录。它的表存储结构分为数据文件和索引文件,索引采用非聚簇索引,MyISAM表支持表级锁,在写入操作时会锁定整张表,这在高并发写入场景下性能较差
  • 数据存储与持久化:数据最终会存储在磁盘上,MySQL通过操作系统文件系统管理数据文件
  • 事务处理:如果SQL语句涉及事务(如多个插入、更新、删除操作需要作为一个整体成功或失败),MySQL会进行如下处理:
  1. 事务开启:客户端发送START TRANSACTION或BEGIN语句,开启事务
  2. 操作执行:在事务中执行的SQL语句,会记录在 undo log(回滚日志)中,用于在事务回滚时撤销已经执行的操作,同时,对数据的修改会先在内存中进行, 并记录 redo log
  3. 事务提交或回滚:如果客户端发送COMMIT语句,MySQL会将内存中的修改持久化到磁盘数据文件,并清理undo log中对应的事务记录,如果发送ROLLBACK语句,则会根据undo log撤销事务中已经执行的所有操作

MySQL工作原理了解即可

如有错误请指出,不喜勿喷


文章转载自:

http://j7uu0vsk.ywndg.cn
http://cuRfsG2g.ywndg.cn
http://nhMQdZS3.ywndg.cn
http://2U1t7Vod.ywndg.cn
http://f6CypwdD.ywndg.cn
http://TjQ1nI7S.ywndg.cn
http://OcLgDJYG.ywndg.cn
http://LAOjShbW.ywndg.cn
http://ouzF9fQK.ywndg.cn
http://yTDEeKSr.ywndg.cn
http://yh4Puy3p.ywndg.cn
http://bmHRK4Od.ywndg.cn
http://oXATdCiA.ywndg.cn
http://T81kVOc4.ywndg.cn
http://HrdJlLGZ.ywndg.cn
http://7p09GWVa.ywndg.cn
http://rjTEpAxI.ywndg.cn
http://tfpE3rpu.ywndg.cn
http://0LE9enm6.ywndg.cn
http://ufTsQLw9.ywndg.cn
http://RXZKmW9G.ywndg.cn
http://8Bvouc2o.ywndg.cn
http://tTWcr4kX.ywndg.cn
http://oeotgTDz.ywndg.cn
http://hnbQobhD.ywndg.cn
http://pMSZUbCa.ywndg.cn
http://959VJINM.ywndg.cn
http://F71FvxiG.ywndg.cn
http://RqirVTnh.ywndg.cn
http://V00MLAqM.ywndg.cn
http://www.dtcms.com/a/371241.html

相关文章:

  • 【基础-判断】一个页面可以存在多个@Entry修饰的组件。
  • MapStruct详解
  • 新的打卡方式
  • GESP 7/8级免CSP-J/S初赛!申请注意事项!今年已过,明年提前关注!
  • esbuild入门
  • 决策树概念与原理
  • More Effective C++ 条款31:让函数根据多个对象来决定怎么虚拟
  • Python列表:从入门到灵活运用的全攻略
  • 校园洒水车cad+三维图+设计说书
  • 机械硬盘的工作原理
  • 生命周期方法:didUpdateWidget
  • Pie Menu Editor V1.18.7.exe 怎么安装?详细安装教程(附安装包)​
  • ragflow MCP 调用核心提示词解析:逻辑闭环与优化方向
  • Knative Serving:ABP 应用的 scale-to-zero 与并发模型
  • Xsens帮助独立工作室创造引人注目的冒险游戏真实角色动画
  • 《动手学深度学习v2》学习笔记 | 2.4 微积分 2.5 自动微分
  • 【开题答辩全过程】以 哈尔滨裕丰草莓园管理系统为例,包含答辩的问题和答案
  • 国内外支持个人开发者的应用市场
  • 【LLIE专题】SIED:看穿0.0001lux的极致黑暗
  • ANSYS HFSS边界条件的认识
  • python系列之综合项目:智能个人任务管理系统
  • IOC为什么交由spring容器管理?
  • spring事务传播机制
  • LeetCode_数学
  • (nice!!!)(LeetCode 面试经典 150 题 ) 130. 被围绕的区域(深度优先搜索dfs || 广度优先搜索bfs)
  • 虚拟化技术
  • 【74页PPT】MES简介(附下载方式)
  • 基于Pygame的六边形战术推演系统深度剖析——从数据结构到3D渲染的完整实现(附完整代码)
  • 强化学习入门:从零开始实现DDQN
  • 开启Python之路,第一节学习大纲-从入门到进阶