MySQL常规日志排错

php中文网
发布: 2016-06-07 17:29:03
原创
1096人浏览过

对于MySQL官方原版的数据库。5.5 及以下版本的锁信息 显示的是不全面的,可以的话切换为mariadb版本;针对锁信息的查看,可以使用

mysql版本:5.0.82

测试环境中,开发人员告诉我,数据库无法insert插入提示 lock wait timeout;

第一印象是被某个语句锁住,多次执行show full processlist 查看对同一个表执行的操作,查看 show engine innodb status\G  只显示被锁住的语句,未显示被哪个语句锁住(在官方5.5版本中同样也是显示这样的情况,在mariadb分支中,显示的信息比较详细!);

这个时候采取的办法是打开 innodb 监控器,innodb_lock_monitor 16s 检测一次,在测试程序的时候仍然一无所获;此时我们只能开始怀疑 os问题,cpu负载,磁盘IO;由于网络是隔离的,起初怀疑网络原因,导致连接经常断掉,调整为同一个网络仍然无效;后来将数据全部mysqldump出来(这样排除了磁盘未损坏的问题,至少能读取)

冠龙科技手机企业网站管理系统2016
冠龙科技手机企业网站管理系统2016

冠龙科技手机企业网站管理系统是基于ASP+ACCESS技术开发的电子商务平台,属于全自动化、全智能的在线方式管理、维护、更新的网站管理系统。此系统直接上传到你的网站空间就可以使用了。完全后台操作。后台路径:/admin后台用户及密码均为 admin更新日志:1、增加在线客服系统支持网页在线客服及QQ\旺旺等2、修改产品展示的排序错误3、增加了后台修改前台图片的功能4、网站LOGO及版权信息后台自定

冠龙科技手机企业网站管理系统2016 0
查看详情 冠龙科技手机企业网站管理系统2016

这种情况只能去怀疑程序的问题,java 采用连接池,当初怀疑某个未commit的线程被复用的问题;这次打开了 general log; 显示的格式为: time  thread id      SQL语句;这次我们有较大的收获;通过比较commit 与 set autocommit 个数不同,对应到具体线程,,即可知道哪个线程未提交事务;这个时候剩下的就是让开发人员修改代码啦。

小结:对于MySQL官方原版的数据库。5.5 及以下版本的锁信息 显示的是不全面的,可以的话切换为mariadb版本;针对锁信息的查看,可以使用5.5中新功能:performance_schema ,这个锁问题很方便;general log 要好好利用,他是诊断故障,测试性能的救命稻草!!

linux

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号