加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql性能知识点整理

发布时间:2022-01-20 08:46:07 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要讲解了mysql性能知识点整理,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习mysql性能知识点整理吧! mysql的性能问题监控一向比较简单,除了slow log和show processlist就没有什么特别好的办
        这篇文章主要讲解了“mysql性能知识点整理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql性能知识点整理”吧!
 
       mysql的性能问题监控一向比较简单,除了slow log和show processlist就没有什么特别好的办法,下面的脚本可以帮助收集数据库一段时间内的行为,还可以导入表中,做成图表,方便判断数据库的性能和容量趋势。
 
touch lastdat.txt
touch tempdat.txt
touch mystat.sh
chmod 755 mystat.sh
 
mysqladmin extended-status |grep -E 'Bytes_received>|Bytes_sent>|Com_delete>|Com_insert>|Com_select>|Com_update>|Connections>'|awk '{print $4}'>/root/tempdat.txt
byr=`sed -n '1p' /root/tempdat.txt`
bys=`sed -n '2p' /root/tempdat.txt`
del=`sed -n '3p' /root/tempdat.txt`
ins=`sed -n '4p' /root/tempdat.txt`
sel=`sed -n '5p' /root/tempdat.txt`
upd=`sed -n '6p' /root/tempdat.txt`
conn=`sed -n '7p' /root/tempdat.txt`
ct=`wc -l /root/lastdat.txt|awk '{print $1}'`
if [ $ct -eq 0 ]
then
echo $byr>/root/lastdat.txt
echo $bys>>/root/lastdat.txt
echo $del>>/root/lastdat.txt
echo $ins>>/root/lastdat.txt
echo $sel>>/root/lastdat.txt
echo $upd>>/root/lastdat.txt
echo $conn>>/root/lastdat.txt
else
val_new=$byr
val_old=`sed -n '1p' /root/lastdat.txt`
valbyr=`expr $val_new - $val_old `
valbyr=`expr $valbyr / 1024`
 
val_new=$bys
val_old=`sed -n '2p' /root/lastdat.txt`
valbys=`expr $val_new - $val_old `
valbys=`expr $valbys / 1024`
 
val_new=$del
val_old=`sed -n '3p' /root/lastdat.txt`
valdel=`expr $val_new - $val_old `
 
val_new=$ins
val_old=`sed -n '4p' /root/lastdat.txt`
valins=`expr $val_new - $val_old `
 
val_new=$sel
val_old=`sed -n '5p' /root/lastdat.txt`
valsel=`expr $val_new - $val_old `
 
val_new=$upd
val_old=`sed -n '6p' /root/lastdat.txt`
valupd=`expr $val_new - $val_old `
 
val_new=$conn
val_old=`sed -n '7p' /root/lastdat.txt`
valconn=`expr $val_new - $val_old `
 
echo `date +"%Y-%m-%d %k:%M:%S"`,$valbyr,$valbys,$valdel,$valins,$valsel,$valupd,$valconn>>/root/`hostname`.csv
echo $byr>/root/lastdat.txt
echo $bys>>/root/lastdat.txt
echo $del>>/root/lastdat.txt
echo $ins>>/root/lastdat.txt
echo $sel>>/root/lastdat.txt
echo $upd>>/root/lastdat.txt
echo $conn>>/root/lastdat.txt
fi
 
--------------------------------------------------------------------------
 
#catchsql.sh
log_dir=/usr/checklog
interval=3
 
#每3秒运行一次
 
wtlimit=10
 
#抓取运行时间超过10秒的sql
 
maxtime=20
 
#最慢SQL的时间报警限制
 
trap "exit;exit" 2
while [ 1 -eq 1 ]
do
mysql -e "show full processlist" |awk '$2!~/'"(system)"'/ {print $0}'|sed -n '2,$p'|sort -n -k 6 -r|awk '$6>'"$wtlimit"'&&$7!="NULL"&&$6!="NULL"&&$5!="Sleep"&&$5!="Binlog" {print $0}'>$log_dir/topsql.log
ct=`cat $log_dir/topsql.log|wc -l`
if [ $ct -gt 0 ]
then
echo '-------------------------------------------------------------------------------------------------------------------------------------------------------'>>$log_dir/slowsql.log
echo `date "+%Y-%m-%d %H:%M:%S"`>>$log_dir/slowsql.log
echo '-------------------------------------------------------------------------------------------------------------------------------------------------------'>>$log_dir/slowsql.log
cat $log_dir/topsql.log| tee -a >>$log_dir/slowsql.log
mt=`cat $log_dir/topsql.log |sed -n '1p'|awk '{print $6}'`
if [ $mt -gt $maxtime ]
then
echo "-----------------------------------------------------------------------------------------------">>$log_dir/`date +%Y%m%d`.log
echo "`date +%k:%M:%S` Error:some SQL elapse too long ,pls check slowsql.log.Time Threshold: $maxtime">>$log_dir/`date +%Y%m%d`.log
echo "-----------------------------------------------------------------------------------------------">>$log_dir/`date +%Y%m%d`.log
cat $log_dir/topsql.log>>$log_dir/`date +%Y%m%d`.log
fi
fi
sleep $interval
done
 
感谢各位的阅读,以上就是“mysql性能知识点整理”的内容了,经过本文的学习后,相信大家对mysql性能知识点整理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读