登录mysql数据库:
mysql -uchinapay -h192.168.255.18 -p
登录后查看数据库:
show databases
使用指定的数据库:
use dataBaseName;
查看所有的表:
show tables;
查看存储引擎:
show engines;
------------------------------------------------------------------------------------------
修改某个表的字段名称及指定为空或非空
>alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空];
例如:
修改表expert_info中的字段birth,允许其为空
>alter table expert_info change birth birth varchar(20) null;
------------------------------------------------------------------------------------------
修改某个列的注释内容:
说明:
alter table 表名 modify 字段名 字段类型 comment '注释内容';
例:
alter table shensu modify flag_tyep smallint comment '注释内容';
------------------------------------------------------------------------------------------
MySql更新数据库字段长度命令
原文地址:http://blog.youkuaiyun.com/itshu/article/details/1915131
alter table 表名 modify column 字段名 类型;
例如
数据库中user表 name字段是varchar(30)
可以用
alter table user modify column name varchar(50) ;
这样就修改了
查询持续时间超过60秒的事务
select *
from information_schema.innodb_trx
where TIME_TO_SEC(timediff(now(),trx_started)) > 60
长事务的解决方案
1. 监控 information_schema.Innodb_trx 表,设置⻓事务阈值,超过就报警 / 或者 kill;
2. 使用Percona 的 pt-kill ;
优化方案
- 覆盖索引:减少树的搜索次数
死锁解决方案
- 直接进⼊等待,直到超时。这个超时时间可以通过参数 innodb_lock_wait_timeout 来设置(默认50S)。
- 发起死锁检测,发现死锁后,主动回滚死锁链条中的某⼀个事务,让其他事务 得以继续执⾏。将参数 innodb_deadlock_detect 设置为 on,表示开启这个逻辑。
排查
- 查看当前语句状态
show processlist;
-
读写比
-- 读取数量
SHOW GLOBAL STATUS LIKE 'Com_select';
-- 写入数量
SHOW GLOBAL STATUS WHERE Variable_name IN ('Com_insert', 'Com_update', 'Com_replace', 'Com_delete');
锁
select ... lock in share mode
select ... for update