mysql 日常学习

本文介绍了MySQL性能优化的两个实用技巧:一是如何通过查询information_schema.processlist表来筛选进程列表;二是如何拆分大型DELETE或INSERT操作以避免锁表,确保网站正常运行。

一、show processlist结果筛选 

    直接筛选是不行的,其实processlist就是

    information_schema数据库中的一张表,那么通过查表的方式肯定是可以的了:

    SELECT user, host, time, command, time  FROM [mysql|information_schema].processlist WHERE     user = 'me' and state IS NOT NULL;

    例子:SELECT HOST,INFO FROM information_schema.processlist WHERE HOST LIKE '172.20%'

二、拆分大的 DELETE 或 INSERT 语句 

如果你需要在一个在线的网站上去执行一个大的 DELETE 或 INSERT 查询,你需要非常小心,要避免你的操作让你的整个网站停止相应。因为这两个操作是会锁表的,表一锁住了,别的操作都进不来了。 

while (1) { 
//每次只做1000条 
mysql_query("DELETE FROM logs WHERE log_date <= '2009-11-01' LIMIT 1000"); 
if (mysql_affected_rows() == 0) { 
// 没得可删了,退出! 
break; 
} 
// 每次都要休息一会儿 
usleep(50000); 
}

三、学习文章地址

http://www.jb51.net/article/24392.htm

转载于:https://my.oschina.net/u/1178126/blog/819494

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值