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://www.pswp.cn/pingmian/95660.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dask.dataframe.shuffle.set_index中获取 divisions 的步骤分析

dask.dataframe.shuffle.set_index 中获取 divisions 的步骤分析 主要流程概述 在 set_index 函数中,当 divisionsNone 时,系统需要通过分析数据来动态计算分区边界。这个过程分为以下几个关键步骤: 1. 初始检查和准备 if divisions is None:…

ai生成ppt工具有哪些?10款主流AI生成PPT工具盘点

随着人工智能技术的飞速发展,AI生成PPT工具逐渐成为职场人士、学生和创作者提升效率的得力助手。这类工具通过智能算法,能够快速将文本、数据或创意转化为结构化、视觉化的演示文稿,大幅节省设计时间。1、AiPPT星级评分:★★★★★…

Qt多线程编程学习

Qt多线程编程学习 1. 项目概述 本项目展示了Qt中多线程编程的基本用法,通过继承QThread类创建自定义线程,并演示了线程的启动、执行和销毁过程。项目包含一个简单的用户界面,用户可以通过按钮控制线程的启动和结束。 1.1 项目结构 项目包含以…

加密货币武器化:恶意npm包利用以太坊智能合约实现隐蔽通信

ReversingLabs研究人员发现两个恶意npm包利用以太坊(Ethereum)智能合约隐藏并传播恶意软件。这两个名为colortoolsv2和mimelib2的软件包于2025年7月被识别,展现了开源安全攻防战中的新战术。恶意软件包伪装成实用工具攻击活动始于7月7日发布的…

Spring Boot 全局字段处理最佳实践

在日常开发中,我们总会遇到一些琐碎但又无处不在的字段处理需求:• 请求处理: 用户提交的表单,字符串前后带了多余的空格,需要手动 trim()。• 响应处理: 返回给前端的 BigDecimal 金额,因为精度问题导致JS处理出错&am…

三坐标测量机在汽车制造行业中的应用

在汽车制造业中,零部件精度决定着整车性能。从发动机活塞的微米级公差,到车身焊接的毫米级间隙,汽车制造“差之毫厘,谬以千里” ,任何细微偏差都可能引发连锁反应:发动机抖动、异响、油耗飙升,车…

机床夹具设计 +选型

机床夹具设计—第2组(钻床夹具)仿真组装视频_哔哩哔哩_bilibili 夹具-商品搜索-怡合达一站式采购平台 米思米FA标准品电子目录new 可能要吧这些定位块单独用yolo训练一边才能搞识别分析 3长条一短销定位,黄色的用来夹紧 一个面加一短轴一棱…

表格识别技术:通过计算机视觉和OCR,实现非结构化表格向结构化数据的转换,推动数字化转型。

在日常工作和生活中,我们无处不在与表格打交道。从财务报表、发票收据,到科研论文中的数据表、医疗报告,表格以其清晰、结构化的方式,承载着大量关键信息。然而,当这些表格以纸质或图片等非结构化形式存在时&#xff0…

Go基础(②Viper)

Viper 读取配置创建一个配置文件 config.yamlserver:port: 8080timeout: 30 # 超时时间(秒) database:host: "localhost"user: "root"password: "123456"name: "mydb"然后用 Viper 读取这个配置,代…

kafka Partition(分区)详解

一、什么是 PartitionPartition(分区) 是 Kafka Topic(主题) 的最小并行单位。一个 Topic 可以包含多个 Partition,每个 Partition 底层对应一个有序、不可变的消息队列,消息只会顺序追加。Partition 内部消…

中创中间件适配HGDB

文章目录环境文档用途详细信息环境 系统平台:Microsoft Windows (64-bit) 10 版本:5.6.5 文档用途 本文章主要介绍中创中间件简单适配HGDB。 详细信息 一、数据源配置 1.数据库准备 (1)安装HGDB并创建一个名为myhgdb的数据…

服务器内存和普通计算机内存在技术方面有什么区别?

服务器内存和普通计算机内存在技术上的区别,主要体现在为满足不同工作场景和要求而采用的设计和特性上。下面这个表格汇总了它们的主要技术差异,方便你快速了解: ​技术特性​​服务器内存​​普通计算机内存​​错误校验 (ECC)​​支持ECC(…

哪款AI生成PPT工具对职场新人最友好?操作门槛最低的是哪个?

一句话生成专业PPT,职场新人也能轻松做出高质量演示文稿现代职场节奏快,PPT制作已成为必备技能。然而,职场新人常面临两大挑战:缺乏设计经验,以及需要在有限时间内完成高质量演示。传统PPT制作耗时费力,需梳…

1.注解的力量:Spring Boot如何用注解重构IoC容器

文章目录1.1 IoC容器:Spring的智能管家1.2 注解驱动:给管家下指令1.2.1 SpringBootApplication:总管家的聘书1.2.2 组件注解:员工的身份标识1.2.3 Autowired:依赖注入的三种方式1.2.4 Bean注解:手动招聘特殊…

【算法】92.翻转链表Ⅱ--通俗讲解

一、题目是啥?一句话说清 给你一个链表和两个整数 left 和 right,反转从第 left 个节点到第 right 个节点的子链表,并返回反转后的链表。其他部分保持不变。 示例: 输入:head = [1,2,3,4,5], left = 2, right = 4 输出:[1,4,3,2,5](反转了从第2到第4个节点) 二、解题…

Nature子刊:新发现!深层脑网络中发现强迫症症状的神经生物标志物

强迫症(OCD)是一种令人困扰的精神疾病,患者常常被强迫思维和强迫行为所困扰。例如,有些人会反复洗手,无法控制自己的清洁冲动;还有些人会不断检查门窗是否关好,即便他们已经确认过无数次。这些行…

Onlyoffice集成与AI交互操作指引(Iframe版)

Onlyoffice集成与AI交互操作指引(Iframe版) 本文档系统介绍了软件系统集成OnlyOffice实现在线编辑与AI辅助功能的方案。主要内容包括:后端需提供文档配置信息并实现Callback接口以处理文档保存;前端通过Vue集成编辑器&#xff0c…

TypeScript 中 keyof、typeof 和 instanceof

在 TypeScript 开发中,keyof、typeof 和 instanceof 是核心的类型操作符和操作符,专门用于提升类型安全、代码可读性和维护性。1. keyof 操作符定义和用途:keyof 是一个类型操作符,用于获取对象类型的所有键(属性名&am…

分布式专题——1.1 Redis单机、主从、哨兵、集群部署

1 Redis 部署 下面演示在 Linux 环境下部署 Redis7。 1.1 单机部署 1.1.1 检查安装 gcc 环境Redis 是由 C 语言编写的,它的运行需要 C 环境,因此我们需要先安装 gcc; # 关闭防⽕墙 systemctl stop firewalld.service # 查看防火墙状态 firewa…

2025年渗透测试面试题总结-54(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。1、SQL注入的防护方法有哪些? 2、永恒之蓝的漏洞原理是什么?怎么做到的? 3、命令…