首页 基础架构:一条SQL查询语句是如何执行的
文章
取消

基础架构:一条SQL查询语句是如何执行的

架构流程图

架构流程图

连接器

长连接可能出现的问题

当连接器使用长连接管理MySQL客户端和服务端的连接时,容易因为内存过大,导致MySQL服务重启;原因是因为:MySQL执行过程中连接对象是被管理在了内存中,连接断开,内存才会释放,所以当我们全部使用长连接时,内存就会涨的特别快,甚至导致服务被系统强制杀死,从现象看就是MySQL服务异常重启。

如何解决:

1.定期断开连接 2.在MySQL5.7和更新版本,使用mysql_reset_connection命令重新初始化连接资源,该过程不需要重连或重新进行权限验证,但是会将连接重置为刚刚创建完成的状态

查询缓存

为什么不建议使用查询缓存

弊大于利:

1.一旦执行更新操作,缓存会全部清除,意思是辛辛苦苦维护缓存,结果还没来得及用就被删除了,白白浪费了资源;所以如果要使用缓存,尽量是更新操作比较少的数据库 2.MySQL8.0之后完全割掉了查询缓存的功能

按需使用查询缓存

将参数query_cache_type参数设置成demand,这样默认对于SQL语句不使用查询缓存,如果要针对特定语句使用查询缓存,操作如下:

1
mysql> select SQL_CACHE * from T where id=10;
本文由作者按照 CC BY 4.0 进行授权

事务隔离:为什么你改了我还看不见?

日志系统:一条SQL更新语句是如何执行的?