MySQL的连接池原理和架构雏形

实际上没什么好说的,这里只是简单总结一下连接池原理,顺便梳理下一个用户注册和登录的过程,进一步带您理解一些业务逻辑。

预先设置好连接池内的正在等待的执行单元(进程/线程),每个执行单元保持和 MySQL 连接的状态,有任务(SQL 语句)到来就 push 进连接池中的执行流队列,我们完全可以自己手写一个连接池。

另外,网上还有一些 MySQL 连接池的组件,例如 hicar

至于一个用户是怎么走注册和登录流程的呢?

用户端向服务器 请求注册页面 (也就是请求访问一个网站,对应服务端的服务器必须搭建 htpp,类似 Nginx),用户端填写注册信息,服务端 get post 获取表单,服务器使用一些 Web 语言读取各个参数数据,经过后端检查和处理,提交到多个数据库中进行交互。

后端进程直接连接数据库有点过于直接(可能导致效率不高),因此就有了中间一层,也就是 中间件软件层 的概念。

使用一些更加效率更高的语言和数据库进行交互,交互的时候进行 负载均衡 ,多个数据库中可以进行同步,加强持久性,也就是 数据库集群化,可以将多个数据库作为一个数据库来处理(多数据库也是一些数据库不实现事务的原因之一,插入只在一台服务器插入,但是查询可以查其他同步过的数据)。

成功注册账户后,用户再次 请求登录页面,也是经过和上述类似的流程,就是处理逻辑有可能不太一样。

而如果查数据库时,查询的某个较为频繁热度的数据,此时就会有类似缓存的 NoSQL 存储系统 (例如 redis),高频数据直接在里面查就行。

而关于整个结构的演进和效率,就可以去了解下 工程架构容器技术 (例如 docker)。

相关推荐
焦糖布丁的午夜12 分钟前
MySQL数据库大王小练习
数据库·mysql
AI浩14 分钟前
YOLO26:面向实时目标检测的关键架构增强与性能基准测试
目标检测·目标跟踪·架构
狗头实习生1 小时前
Spring常见的事务失效原因
java·数据库·spring
冉冰学姐1 小时前
SSM泰兴市公交信息系统f504u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架应用·泰兴市公交·息管理系统
无心水2 小时前
【分布式利器:大厂技术】4、字节跳动高性能架构:Kitex+Hertz+BytePS,实时流与AI的极致优化
人工智能·分布式·架构·kitex·分布式利器·字节跳动分布式·byteps
海市公约2 小时前
HTML网页开发从入门到精通:从标签到表单的完整指南
前端·ide·vscode·程序人生·架构·前端框架·html
偶像你挑的噻3 小时前
3.Qt-基础布局以及事件
开发语言·数据库·qt
Dxy12393102163 小时前
MySQL如何做读写分离架构
数据库·mysql·架构
---学无止境---4 小时前
i386 架构中断管理函数详解
linux·架构
毕设十刻5 小时前
基于Vue的考勤管理系统8n7j8(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js