欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

MySQL自用脚本(不定期更新)

发布时间:2025/3/15 数据库 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MySQL自用脚本(不定期更新) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

查询指定SQL的trace信息

mysql -uUSER -pPWD -hHOST -e "\ use ins_tc_prd; \ set session optimizer_trace='enabled=on'; \ set optimizer_trace_max_mem_size = 1638400; \ explain SQL; \ select * from information_schema.optimizer_trace\G;" > trace_log.log

 查看表空间的使用情况

select table_name, (data_length+ index_length) /1024/1024 as total_mb, table_rows from information_schema.tables where table_schema= 'Database' ;//不写就是全部

 查看MySQL数据库状态

mysqladmin -P3306 -uroot -p -h127.0.0.1 -r -i 1 extended-status |awk -F"|" "BEGIN{ count=0; }"'{ if($2 ~ /Variable_name/ && ((++count)%20 == 1)){\ print "----------|---------|--- MySQL Command Status --|----- Innodb row operation -----|-- Buffer Pool Read --";\ print "---Time---|---QPS---|select insert update delete| read inserted updated deleted| logical physical";\ }\ else if ($2 ~ /Queries/){queries=$3;}\ else if ($2 ~ /Com_select /){com_select=$3;}\ else if ($2 ~ /Com_insert /){com_insert=$3;}\ else if ($2 ~ /Com_update /){com_update=$3;}\ else if ($2 ~ /Com_delete /){com_delete=$3;}\ else if ($2 ~ /Innodb_rows_read/){innodb_rows_read=$3;}\ else if ($2 ~ /Innodb_rows_deleted/){innodb_rows_deleted=$3;}\ else if ($2 ~ /Innodb_rows_inserted/){innodb_rows_inserted=$3;}\ else if ($2 ~ /Innodb_rows_updated/){innodb_rows_updated=$3;}\ else if ($2 ~ /Innodb_buffer_pool_read_requests/){innodb_lor=$3;}\ else if ($2 ~ /Innodb_buffer_pool_reads/){innodb_phr=$3;}\ else if ($2 ~ /Uptime / && count >= 2){\ printf(" %s |%9d",strftime("%H:%M:%S"),queries);\ printf("|%6d %6d %6d %6d",com_select,com_insert,com_update,com_delete);\ printf("|%8d %6d %7d %7d",innodb_rows_read,innodb_rows_inserted,innodb_rows_updated,innodb_rows_deleted);\ printf("|%10d %11d\n",innodb_lor,innodb_phr);\ }}';

 MySQL查询阻塞语句

select r.trx_id waiting_trx_id, r.trx_mysql_thread_Id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query from information_schema.innodb_lock_waits w inner join information_schema.innodb_trx b on b.trx_id = w.blocking_trx_id inner join information_schema.innodb_trx r on r.trx_id = w.requesting_trx_id;

 导出语句

--导出建表语句和数据 /opt/mysql/bin/mysqldump --defaults-file=/opt/mysql/my.cnf -uroot -p123456 -hlocalhost -R --single-transaction --default-character-set=utf8 dentist ds_user uas_user ds_organization > /opt/mysql/bak_dir/table.sql--dentist 数据库名称 -- ds_user uas_user ds_organization 表名称--导出建表语句 不包含数据 /opt/mysql/bin/mysqldump --defaults-file=/opt/mysql/my.cnf -uroot -p123456 -hlocalhost -R --single-transaction --default-character-set=utf8 -d dentist ds_user uas_user ds_organization > /opt/mysql/bak_dir/table.sql

 查询表的数据量大小

select table_name,(data_length + index_length)/1024/1024 as table_mb,table_rows from information_schema.tables where table_schema='zabbix';也可以在系统上直接查看表对应的数据文件大小

 

 

转自

  • http://blog.itpub.net/29510932/viewspace-1812475/
  • 总结

    以上是生活随笔为你收集整理的MySQL自用脚本(不定期更新)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。