] STATUS //显示给定数据库的表的详情
SHOW [GLOBAL | SESSION] VARIABLES //显示系统变量 为了查看较少的信息,可使用 like '' 从句,like 语句中可使用标准MySQL正则表达式符号和控制符
SHOW ENGINE LOGS //显示指定存储引擎的日志信息
SHOW ENGINE STATUS //显示指定存储引擎状态信息
SHOW ENGINES //显示所有可用的存储引擎的列表及状态
SHOW BINARY LOGS //显示服务器二进制LOG列表
SHOW RELAYLOG EVENTS [IN ''] [FROM ] [LIMIT [, ] ]
//仅限制查看Slave上的中继日志
SHOW MASTER STATUS //显示Master当前配置,显示当前二进制日志文件,文件位置等
SHOW SLAVE HOSTS //使用--report-host 选项显示连接到Master的slave列表
SHOW SLAVE STATUS //显示复制中slave的系统状态
MySQL GUI工具
MySQL Administrator
MySQL Query Browser
MySQL Migration Toolkit //用于自动从其他数据库系统上迁移数据
第三方工具
MySAR 系统活动报告
mytop 监控线程统计信息和Mysql常规性能统计信息
innotop 用于监控InnoDB性能和MySQL服务器
MONyog (MySQL Monitor and Advisor) mysql监控工具,主动监控方案
MySQL Benchmark套件 MySQL基准测试
./run-all-tests --server=mysql --cmp=mysql --user=root --socket=
测量数据库性能
EXPLAIN 分析关于如何执行SELECT语句的信息
ANALYZE [ LOCAL | NO_WRUTE_TO_BINLOG ] TABLE
#[ LOCAL | NO_WRUTE_TO_BINLOG ] 可防止命令写入二进制日志。
SHOW INDEX FROM TABLE
OPTIMIZE [ LOCAL | NO_WRUTE_TO_BINLOG ] TABLE
#重构一个或多个表的数据结构,整理存储空间
SHOW FULL PROCESSLIST; 查看所有进程信息
数据库优化
1、谨慎而有效的使用索引
2、使用规范化(范式),但不要过头
3、使用正确的存储引擎
alter table t1 ENGINE=MEMORY;
提高性能的最佳实践
1、一切都很慢(检查问题)
* 检查硬件
* 改善硬件环境(如添加硬盘)
* 考虑将数据迁移到独立的磁盘上
* 检查操作系统配置是否正确
* 考虑将有些应用迁移到其他服务器上
* 考虑可以向外扩展的复制
* 优化服务器性能
2、慢查询
* 规范化数据库模式
* 使用EXPLAIN识别丢失的或不正确的索引
* 使用benchmark() 函数测试部分查询
* 考虑重写查询
* 对标准查询使用视图
* 启用Query Cache
3、慢应用
* 开启 Query Cache
* 考虑并优化存储引擎
* 确认是否是服务器或操作系统的问题
* 定义应用程序的基准,并将它与已知基准比较
* 检查内部(在应用程序 内部编写的)查询,并最大化他们的性能
* 分而治之——一次只检查一个部分
* 使用划分类分散数据
* 检查各个分区的索引
4、慢复制
* 确保网络运行状况最佳
* 确保服务器配置正确
* 优化数据库
* 限制 Master 的更新
* 将数据读取划分到多个Slave中
* 检查Slave 的复制延迟
* 定期维护日志(二进制日志和中继日志)
* 在带宽有限的情况下,使用压缩
* 使用包容性和排他性日志选项,最小化复制内容
数据引擎的优化和监控
MyISAM实用工具
* myisam_ftdump: 显示全文索引信息
* myisamchk : 执行MyISAM 表的分析(只能在脱机状态使用)
* myisamlog : 查看MyISAM 表的更改日志
* myisampack:压缩表以减少存储量
Key Cache
1、预加载Key Cache
#将salary表的索引加载到key cache中,ignore leaves: 表明只加载索引的非叶子节点,可通过修改表的方式从Key cache中移除相关索引
mysql> load index into cache salaries ignore leaves;
2、使用多个Key Cache
#使用耳机主缓存
mysql> set global emp_cache.key_buffer_size = 128*1024; //128K
mysql> cache index salaries in emp_cache;
mysql> set global emp_cache.key_buffer_size=0;
#确认一个二级缓存是否存在
mysql> select @@global.emp_cache.key_buffer_size;
重启而不丢失二级缓存配置的方式:将配置语句保存在一个文件中,使用mysql的配置文件的[mysqld]部分的 init-file=命令执行该文件。
以上就是MySQL 性能、监控与灾难恢复的内容,更多相关内容请关注PHP中文网(www.)!
友情链接: