MySql基本命令

本文提供MySQL数据库的基本操作指导,包括登录数据库、查看数据库和表、修改字段名称与类型等实用命令。此外,还介绍了如何优化查询效率,处理长事务及解决死锁等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

登录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 ;

 

优化方案

  1. 覆盖索引:减少树的搜索次数

死锁解决方案

  1. 直接进⼊等待,直到超时。这个超时时间可以通过参数 innodb_lock_wait_timeout 来设置(默认50S)。
  2. 发起死锁检测,发现死锁后,主动回滚死锁链条中的某⼀个事务,让其他事务 得以继续执⾏。将参数 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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值