一、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