• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

cynchanpin

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

性能优化——mysql数据库

一 mysql经常使用命令

1. 打开日志

1) show global variables like "%genera%";

2)set global general_log=on;

3)set global general_log=off;


2. mysql假设开了set autocommit=0,那么全部的语句一定是在一个事务里


3. show engine innodb status 

1) http://imysql.cn/2008_05_22_walk_through_show_innodb_status



二 典型问题分析

1. 数据库等待锁超时 Lock wait timeout exceeded; try restarting transaction

1). 调整语句运行顺序。降低锁等待时间:涉及到的数据库操作比較多,事务比較大。把这些锁超时的表(多个事务并发可能取同一行的表,就会存在锁等待的情况)放在事务的最后面,运行完就释放锁了。降低其它事务的锁等待时间
2).切分事务:
3).语句合并。降低数据库网络交互:多条语句,并在一起。使用multiQuery,一次查询更新  


2. DeadLock问题


3. 查看事务一直没提交的问题

mysql> show engine innodb status \G   

查询active 的事务id




附录:

mysql锁分析: http://hedengcheng.com/?p=771


posted on 2017-06-01 13:27  cynchanpin  阅读(176)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3