【性能优化】MySQL 数据库连接原理和性能优化 - 学习/实践
1.应用场景
学习MySQL数据库连接原理和性能优化, 开发高性能程序. |
2.学习/操作
1. 文档阅读
2. 整理输出2.1 常见的 MySQL 客户端MySQL 服务端启动之后,就可以通过客户端建立与服务端的连接,然后发送查询/更新请求了。 我们可以通过 MySQL 安装目录 也可以通过图形化客户端软件建立这种连接(比如 MySQL Workbench、Navicat For MySQL、DataGrip、TablePlus、Sequel Pro 等 )。 参考:DBMS - GUI/可视化管理工具_穿素白衫的少年的博客-CSDN博客_dbms下载 // DBMS - 可视化管理工具 此外,我们在 PHP、Go、Python、Java 这些后端编程语言中使用的数据库 SDK 也是一种 MySQL 客户端,只不过这些 SDK 对数据库连接做了封装而已。 Note: SDK abbr. 软件开发工具包(Software Development Kit) 以上都是日常开发过程中经常打交道的 MySQL 客户端,这里,为了更接近底层原理,我们使用 2.2 MySQL 命令解析我们可以通过如下命令格式建立数据库连接:
我们以默认的 这里我们通过 通过 通过 虽然可以通过这种方式比较便捷地指定密码信息,但是如果是连接到生产环境 MySQL 服务器,则不建议这么做,因为这样会导致密码的泄露,取而代之地,可以通过如下这种交互式方式输入密码发起连接请求: 这样一来,输入的密码信息就不可见了。 连接成功后,我们就可以通过这个交互式界面来操作 MySQL 数据库了。 在进行下一步操作之前,我们先来看看 MySQL 客户端是如何建立与服务端的连接的。 2.3 数据库连接过程不管是 MySQL 服务端还是客户端,本质上都是计算机的进程,所以这个连接过程和通过浏览器(HTTP 客户端)请求指定网站(HTTP 服务端)连接建立过程并无二致,都是进程之间的通信。只不过后者是 HTTP 请求,基于 HTTP 协议,而前者是 TCP 请求,基于 TCP 协议。
学院君在网络协议的传输层协议中已经介绍过 TCP 通信的原理,既然是 TCP 请求,那么通信的双方 —— MySQL 客户端和服务端需要具备必要的进程信息:源 IP 地址、源端口号、目标 IP 地址、目标端口号,这样才能建立可靠连接,这里的目标 IP 地址就是 MySQL 服务端所在的 IP 地址,上面的示例是 所以从这个角度来说,通过 在完成经典的 TCP 握手后,服务端就要开始认证你的身份,这个时候用的就是你输入的用户名和密码: A.如果用户名或密码不对,就会收到一个 B.如果用户名密码认证通过,连接器会到权限表里面查出你拥有的权限,之后,这个连接里面的权限判断逻辑,都将依赖于此时读到的权限。这就意味着,一个用户成功建立连接后,即使对这个用户的权限做了修改,也不会影响已经存在连接的权限,只有新建的连接才会使用新的权限设置。 2.4 数据库连接状态连接完成后,如果你没有后续的动作,这个连接就处于空闲状态,你可以在 其中的 Command 列显示为 Sleep 的行,表示一个空闲连接。 客户端如果太长时间没动静,连接器就会自动将它断开,这个时间是由参数 你可以通过
你可以通过 MySQL 配置文件修改这个默认配置( 如果连接被断开之后,客户端再次发送请求的话,就会收到一个错误提醒: 2.5 长连接与短连接在 MySQL 数据库中,还有长连接与短连接的概念:
这个和 HTTP 长连接和短连接的概念很像,并且显然,无论是 HTTP 还是 MySQL,使用长连接都能有效减少建立连接过程带来的损耗,进而提升性能。 不过在 MySQL 中,使用长连接会有一定的副作用 —— 有些时候会导致 MySQL 占用内存涨得特别快。 这是因为 MySQL 在执行过程中临时使用的内存是管理在连接对象里面的,这些资源只有在连接断开的时候才会释放。 对于这个问题,通常有两种解决方案:
关于 MySQL 客户端与服务端的连接,以及连接状态和类型我们就简单介绍到这里. 下篇教程,我们更进一步,来探究一条 SQL 查询语句在 MySQL 客户端和服务端之间都经历了哪些曼妙之旅, 最后把查询结果返回给客户端的。 后续补充 ... |
3.问题/补充
TBD |
4.参考
MySQL 数据库连接原理和性能优化 - 高性能 MySQL 实战 | Laravel 学院 05丨检索数据:你还在SELECT * 么?-极客时间 |
后续补充
...
【性能优化】MySQL 数据库连接原理和性能优化 - 学习/实践相关推荐
- Mysql索引原理剖析与优化策略
Mysql索引原理剖析与优化策略 1.索引的本质 在⽣产环境中,随着数据量不断的增⻓,SQL执⾏速度会越来越慢,常⻅的⼿段就是通过索引来提升查询速度,那么究竟为什么要添加索引?应该如何正确添加索引? ...
- 【微机原理与接口技术学习实践】汇编语言程序设计初步——debug编写调试指令序列
halo~我是bay_Tong桐小白 本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言.指点 [微机原理与接口技术学习 ...
- mysql如何优化性能优化_如何优化性能?MySQL实现批量插入以优化性能的实例详解...
这篇文章主要介绍了MySQL实现批量插入以优化性能的教程,文中给出了运行时间来表示性能优化后的对比,需要的朋友可以参考下 对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时 ...
- MySQL索引原理与性能调优
MySQL 应该是最流行的后端数据库,尽管 NOSQL 近几年越来越火爆,可是相信大部分架构师还是会选择 MySQL 来做数据存储. 作为一名Java程序员相信MySQL我们都不陌生,但真的了解MyS ...
- [数据库]MySQL索引原理和深度优化
一.摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如 ...
- 逆向课程第四讲逆向中的优化方式,除法原理,以及除法优化上
一丶为什么要熟悉除法的优化,以及除法原理 是这样的,在计算机中,除法运算对应的汇编指令分为 DIV(无符号除法指令) 以及 IDIV(有符号除法指令). 但是,除法指令的执行周期较长效率很低.所以编译 ...
- MySQL主从原理,基于快速学习一门技术的3种方式!
根据经验,想要快速学习一门技术有3种方式. 第一种方式是通过代码来理解它的实现,反推它的逻辑. 这种方式的难度很大,而且起点相对高,能够沉浸其中的人非常少,过程相对来说是苦闷的,但如果能够沉下心来看代 ...
- MySQL 数据存储和优化------MySQL架构原理 ---- (架构---索引---事务---锁---集群---性能---分库分表---实战---运维)持续更新
Mysql架构体系全系列文章主目录(进不去说明还没写完)https://blog.csdn.net/grd_java/article/details/123033016 本文只是整个系列笔记的第一章: ...
- 简单的优化mysql,提高查询性能
其实下面要讲的优化方法都是大家熟悉的,只是对于自己来说,是前进了一小步,而且看到结果很满意.免不了有点高兴,所以就写下来. [size=large]问题:在php中用select语句查询mysql数据 ...
最新文章
- android小球移动代码,Android自定义圆形View实现小球跟随手指移动效果
- v-html解析的相对地址img 显示不出来_人工智能专题作品解析——APPInventor安卓应用开发AI图像识别简单应用...
- 用Discuz/UCenter账号实现Wifi登录认证
- C++ STL下载和安装
- 七个C#编程的小技巧
- 一张图看懂CSS cascade, specific, importance, inheritance
- CentOS7部署NFS
- 读书笔记2013第3本:《无价》
- (计算机组成原理)第五章中央处理器-第三节1:CPU内部单总线数据通路中数据的流动
- 接口测试---mock变量自定义变量的使用
- Golang的GC和内存逃逸
- Linux 设备模型
- cad注释比例和打印比例不一样_CAD中输出不同比例图纸效率不高,原因在这里
- 181104每日一句
- 都说苹果秋季发布会像一杯白开水,那么...
- 8,JESD204B协议介绍
- python爬取有道翻译的代码_有道翻译的爬取
- 如何记忆 Spring Bean 的生命周期
- 云创大数据荣膺英特尔“行业贡献奖”
- 设置py文件在pycharm里的工作环境/路径
热门文章
- 为什么-128的补码是1000 0000?
- 最牛啤的Java后端框架,没有之一!
- 合并多个js,css文件的方法:在服务端合并js和css文件
- 苹果/Mac电脑在哪里开启勿扰模式?
- python砍价代码_【微擎微赞模块】砍价宝4.5小程序版+小程序前端+后端+素材包+砍价+抢购+拼团...
- Linux使用vim编辑文本时字体背景颜色变为黄色 解决办法
- 本地电脑远程使用服务器 jupyter notebook及主题更换
- 算法1.3.插入排序
- UML图箭头关系简介
- MAD,现代安卓开发技术:Android 领域开发方式的重大变革~