架构流程图
连接器
长连接可能出现的问题
当连接器使用长连接管理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;