MySQL数据库执行Update卡死问题怎么解决
技术百科
WBOY
发布时间:2023-05-26
浏览: 次 问题分析
一般都是数据库事务未提交,导致update或者delete卡死。
解决办法
在执行完更新或删除后,记得将事务提交commit;
找到数据库客户端,执行commit操作。
如果还不行。当数据库在执行数据操作失败或事务未提交时,它会锁定需要执行的SQL语句。
过程复现和解决
通过如下命令查看数据库的自动提交状态
show variables like 'autocommit';
通过SQL设置数据库自动自动提交为关闭
-- on为开启,off为关闭 set autocommit=off; -- 或者1为开启,0为关闭 set autocommit=0;
表中数据如下:
打开两个窗口分别执行update操作
update car set color ='银色' where id = 1; update car set color ='红色' where id = 1;
查询正在执行的事务:
SELECT * FROM information_schema.INNODB_TRX;
根据图中事务的线程ID(trx_mysql_thread_id)可以看出对应的mysql 线程:一个1084 (update正在等待锁)另一个是1089(update 正在执行 没有提交事务)
可以使用mysql命令杀掉线程:kill 线程id
kill 1089;
期间如果并未杀掉持有锁的线程:则第二个update语句会提示等待锁超时。
相关命令:
-- 查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; -- 查询mysql数据库中存在的进程 select * from information_schema.`PROCESSLIST`(show processlist;)
扩展
oracle的操作方式:
查询锁定记录
SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
删除锁定记录
ALTER system KILL session 'SID,serial#';
# 都是
# 它会
# 数据库中
# 解决办法
# 可以使用
# 第二个
# 客户端
# 或删除
# 图中
# 数据库
# 线程
# delete
# mysql
# sql
# 可以看出
# oracle
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win10怎么关闭自动更新错误弹窗_Win10策略
- Python路径拼接规范_跨平台处理说明【指导】
- Windows 11无法安全删除U盘提示设备正在使
- Windows驱动无法加载错误解决方法_驱动签名验
- Go 中 := 短变量声明的类型推导机制详解
- PHP 中 require() 语句返回值的用法详
- Python项目回滚策略_发布安全说明【指导】
- Python类装饰器使用_元编程解析【教程】
- Linux怎么实现内网穿透_Linux安装Frp客
- Windows 11如何查看系统激活密钥_Wind
- LINUX如何删除用户和用户组_Linux use
- Win11怎么设置ipv4地址_Windows 1
- Python对象生命周期管理_创建销毁解析【教程】
- 网站内页做seo排名怎么做?
- Win11任务栏颜色怎么改_Win11自定义任务栏
- MAC怎么设置程序窗口永远最前_MAC窗口置顶插件
- Windows10如何更改鼠标图标_Win10鼠标
- win11如何清理传递优化文件 Win11为C盘瘦
- 如何在Golang中解压文件_Golang com
- Mac上的iMovie如何剪辑视频?(新手入门教程
- Django密码修改后会话失效的解决方案
- Win10怎么设置开机密码_Windows10账户
- Python模块的__name__属性如何由导入方
- Win11文件夹预览图不显示怎么办_Win11缩略
- Win11如何设置文件关联 Win11修改特定文件
- 如何在Golang中捕获HTTP服务器错误_Gol
- 如何在 Windows 11 中使用 AlomWa
- 如何使用正则表达式批量替换重复的“-”模式为固定字
- Windows7怎么找回经典开始菜单_Window
- Windows10如何更改任务栏高度_Win10解
- 如何在Golang中使用encoding/gob序
- Windows如何拦截腾讯视频广告_Windows
- Win11怎么设置声音输出设备_Windows11
- mac怎么打开终端_MAC终端Terminal使用
- Win10如何卸载Skype_Win10卸载Sky
- php485函数怎么捕获异常_php485错误处理
- 如何将文本文件中的竖排字符串转换为横排字符串
- Win10怎样设置多显示器_Win10多显示器扩展
- Go 中实现 Python urllib.quot
- Win11怎么退出微软账户_切换Win11为本地账
- Win11怎么设置默认邮件客户端 Win11修改M
- php中::能用于接口静态方法吗_接口静态方法调用
- 如何使用Golang开发基础文件下载功能_Gola
- Win10如何优化内存使用_Win10内存优化技巧
- 手机php文件怎么变成mp4_安卓苹果打开php转
- php删除数据怎么软删除_添加is_del字段标记
- Win11如何更新显卡驱动 Win11检查和安装设
- Win10怎么卸载爱奇艺_Win10彻底卸载爱奇艺
- Python大型项目拆分策略_模块化解析【教程】
- Win11如何设置开机问候语 Win11修改登录界

M v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
QQ客服