MySQL从入门到高级面试详解大全
⼀、数据库基础知识
-MySQL的基本架构是怎么样的?
如何查看空闲连接列表?
使⽤
show processlist
命令可以查看到空闲列表,如下图所示:
在图中,Command这列显示为sleep的记录,表示⼀个空闲连接。
需要注意的是,连接的超时时间默认为
8
⼩时,如果连接空闲超过
8
⼩时,则连接断开,要想继续操作则
需要进⾏重连。
-
MySQL连接超出默认连接的8⼩时,除了重连还有其他办法吗?
可以使⽤⻓连接来解决这个问题。
使⽤⻓连接的好处就是可以减少建⽴连接和断开连接的过程,所以⼀般是推荐使⽤⻓连接。
但是,使⽤⻓连接后可能会占⽤内存增多,因为
M
y
S
Q
L
在执⾏查询过程中临时使⽤内存管理连接对
象,这些连接对象资源只有在连接断开时才会释放。如果⻓连接累计很多,将导致
M
y
S
Q
L
服务占⽤内
存太⼤,有可能会被系统强制杀掉,这样会发⽣
M
y
S
Q
L
服务异常重启的现象。
怎么解决⻓连接占⽤内存的问题?
定期断开⻓连接。
客户端主动重置连接。MySQL 5.7 版本实现了 mysql_reset_connection() 函数的接⼝,注意这是
接⼝函数不是命令,那么当客户端执⾏了⼀个很⼤的操作后,在代码⾥调⽤
mysql_reset_connection 函数来重置连接,达到释放内存的效果。这个过程不需要重连和重新做
权限验证,但是会将连接恢复到刚刚创建完时的状态。
-
如何在查询的时候不使⽤缓存?
缓存的执⾏逻辑是什么样的?