mysql常见问题

查询出执行时间较长的进程

select * from information_schema.processlist where command != 'Sleep' and time > 5*60 order by time desc

查看进程

show full processlist

查询 正在执行的事务

SELECT * FROM information_schema.INNODB_TRX

查看正在锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 

查看等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

关键字段解读:

字段说明
ID进程ID
DB属于哪个库
COMMAND该进程的状态,比如Sleep、query、killed
TIME时间,该进程执行的时间,单位是秒
STATE该进程的状态,比如执行中或者等待
INFO执行的sql

2、查看事务表

select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx
字段说明
trx_state该事务的状态
trx_started该事物开始执行时间
trx_mysql_thread_id该事物对应的进程ID
trx_query该事务实行的sql
DRDS执行的sql

3.其他命令

--查看MySQL本次启动后的运行时间(单位:秒)
show status like 'uptime';

--查看select语句的执行数
show  status like 'com_select';

--查看insert语句的执行数
show  status like 'com_insert';

--查看update语句的执行数
show  status like 'com_update';

--查看delete语句的执行数
show  status like 'com_delete';

--查看试图连接到MySQL(不管是否连接成功)的连接数
show status like 'connections';

--查看线程缓存内的线程的数量。
show status like 'threads_cached';

--查看当前打开的连接的数量。
show status like 'threads_connected';

--查看当前打开的连接的数量。
show status like 'threads_connected';

--查看创建用来处理连接的线程数。如果Threads_created较大,你可能要增加thread_cache_size值。
show status like 'threads_created';

--查看激活的(非睡眠状态)线程数。
show status like 'threads_running';


--查看立即获得的表的锁的次数。
show status like 'table_locks_immediate';

--查看不能立即获得的表的锁的次数。如果该值较高,并且有性能问题,你应首先优化查询,然后拆分表或使用复制。
show status like 'table_locks_waited';

--查看创建时间超过slow_launch_time秒的线程数。
show status like 'slow_launch_threads';

--查看查询时间超过long_query_time秒的查询的个数。
show status like 'slow_queries';

4.特殊字符处理
1.Hex函数让隐藏字符显示真身

 SELECT hex(tran_no),tran_no FROM payment_record t WHERE hex(tran_no) LIKE ‘EFBBBF%;

2.16进制的隐藏字符串转为10进制
EFBBF 转为10进制为 15711167
3、mysql处理

 update payment_record set tran_no = REPLACE(tran_no, CHAR(15711167),'') WHERE hex(tran_no) LIKE 'EFBBBF%';

拿到步骤2中的隐藏字符10进制值,通过replace函数把隐藏的10进度值给替换成空串即可处理

5.去除特殊字符

char(9)制表符
char(10)换行
char(13)回车

  update table set field = replace(replace(replace(field,char(9),''),char(10),''),char(13),'');

去除前后空白字符

 update table set field = TRIM(field);

6.特殊字符检测

select * from (

    SELECT  CMBLOT,LCCDTM , UPLOAD,
		CASE PRDWT REGEXP '[^0-9]'  WHEN 0 THEN '数字' ELSE PRDWT END  as PRDWT , 
		CASE LOADTMP REGEXP '[^0-9]'  WHEN 0 THEN '数字' ELSE LOADTMP END  as LOADTMP,
		CASE SEQNO REGEXP '[^0-9]'  WHEN 0 THEN '数字' ELSE SEQNO END  as SEQNO 
		from  lta2011      

)  dome where (PRDWT !='数字' or  LOADTMP !='数字'  or  SEQNO !='数字' )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值