mysql常用的系统命令整理
近日在负责一个性能项目,经常需要对mysql进行一些配置,参数修改等操作,下面整理下相关命令,留存一下!!
———————系统状态———————
##显示正在执行的线程。
show PROCESSLIST;
##查询当前mysql的版本.
select @@version;
##查看mysql实例的端口。
show variables like 'port';
##查看实例的socket数据。
show variables like 'socket';
##查看实例的数据路径。
show variables like 'datadir';
##显示所有数据库名的命令 。
show databases;
## 显示表结构和列结构的命令。
desc call_history;
##查看语句的执行计划。
EXPLAIN;
##查看表的索引情况。
show index from call_history;
##查看表的统计信息,注意切到系统库里面执行
select * from STATISTICS where table_name=call_history;
## 查询定义的packet大小。
select @@max_allowed_packet;
##查看master状态。可以查看 最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值
show master status;
##查看slave状态
show slave status ;
##查看所有的log文件,在主服务器上执行。(即查看所有binlog日志列表)
show master logs;
##显示最近的警告详情。
show warnings;
————————mysql参数—————————
##指定条件的参数设置查询,例如查询以log_slave开头的参数设置。
show variables like 'log_slave%' ;
##查看是否开启了慢查询日志;ON代表开启。可以在线打开。set global slow_query_log = 1;
show variables like 'slow_query_log';
## 查看慢查询日志的路径。
show variables like 'slow_query_log_file';
##查看慢查询定义的阈值,单位是秒。记录的查询是大于该值,不包括该值。
show variables like 'long_query_time';
##查看日志的输出格式(file或table)。
show variables like 'log_output';
##查看日志的时间信息,UTC时间或者SYSTEM时间。
show variables like 'log_timestamps';
##查看从服务器是否开启慢查询日志,ON代表开启。
show variables like 'log_slow_slave_statements';
##将没有使用索引的SQL语句记录到慢查询日志中。
show variables like 'log_queries_not_using_indexes';
##集合上面的参数一起使用,限制每分钟内,在慢查询日志中,记录没有使用索引的次数。避免日志快速增长。
show variables like 'log_throttle_queries_not_using_indexes';
##查看创建的临时表的存储引擎类型。
show variables like "default%tmp%";
##查询log文件大小。
show variables like 'innodb_log_file_size';
##查询页的大小。一旦数据库通过innodb_page_size设置完成,则后续无法更改。innodb_page_size是针对普通表的,压缩表不受限制。
show variables like 'innodb_page_size';
##查看缓冲池的大小,每次读写数据都是通过buffer pool;当buffer pool中没有所需的数据时,才去硬盘中获取。该值设置的越大越好。buffer pool 也是以页(page)为单位的,且大小和innodb_page_size一致。
show variables like 'innodb_buffer_pool_size';
##设置多少个缓冲池。设置多个instance可将热点打散,提高并发性能(建议设置成cpu的个数值)
show variables like 'innodb_buffer_pool_instances';
##查看buffer pool的状态。(查看默认存储引擎的类型:SELECT @@default_storage_engine;)
show engine innodb status;
##在线调整innodb_buffer_pool_size。MySQL 5.7之前的版本,修改该值,需要重启。
set global innodb_buffer_pool_size=2*1024*1024*1024;
##在MySQL 5.6 以后,可以在停机的时候dump出buffer pool的数据,然后在启动的时候Load进buffer pool。该功能可以在MySQL启动时自动预热,无需人工干预。
show variables like 'innodb_buffer_pool_dump_at_shutdown';
##dumpd 百分比,是每个buffer pool文件,而不是整体。
show variables like 'innodb_buffer_pool_dump_pct';
## 启动时加载dump的文件,恢复到buffer pool中。dump的越多,启动的越慢。
show variables like 'innodb_buffer_pool_load_at_startup';
##查看锁的信息,在数据库sys下执行。注意切换到系统库中执行
select * from innodb_lock_waits;
##查看隔离级别
show variables like 'transaction_isolation';
##设置隔离级别。
set transaction_isolation='read-committed';
##设置为ON,表示将死锁信息打印到err_log中。
show variables like 'innodb_print_all_deadlocks';
##master thread 每秒刷新redo的buffer到logfile。5.7版本可以设置刷新间隔时间,默认是1秒。
show variables like "%innodb_flush_log_at_timeout%";
##查看binlog的类型。statement 记录SQL语句;ROW 记录SQL语句操作的那些行(行的变化);mixed 混合statement 和 Row 格式(不推荐)
show variables like 'binlog_format';
##查看某数据库下账号,root超级权限的账号除外
select * from mysql.db WHERE db LIKE 'db_name';