mysql性能知识点整理

这篇文章主要讲解了“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性能知识点整理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

文章题目:mysql性能知识点整理
文章源于:https://www.cdcxhl.com/article44/gcgphe.html

成都网站建设公司_创新互联,为您提供品牌网站设计微信公众号外贸网站建设关键词优化企业网站制作微信小程序

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发