1、体系结构
mysql体系结构如下:
mysql引擎和服务是分开的,系统的调优要分为二个部分,一个为服务的调整,另外一个为引擎的调优。
2、性能优化
1、oracle中的性能诊断statpack中类似功能
答:主要是打开慢查询,通过分析一段时间的慢查询来获得top N的语句。另外的需要mysqladmin来进行观察。
慢查询:
$ mysqldumpslow -s t slow.log > slow.time.log
$ mysqldumpslow -s c slow.log > slow.count.log
mysqladmin监控:
执行引擎的状态:
mysql和oracle的体系结构不一样,引擎的具体状态需要各个厂家来提供,常用的innodb的状态,可以用如下命令来查看:SHOW ENGINE INNODB STATUS;
2、oracle中的执行计划
答:mysql也有,用EXPLAIN [EXTENDED] SELECT ...
3、mysql中的内存优化
答:主要也引擎有关,常见的INNODB,依据对应的文档设置即可
4、mysql修改配置文件(类spfile)
答:my.cnf文件,可以通过show variables查看当前配置状态。
3、日常维护
1、如何杀掉一个占用mysql资源非常多的线程
答:1、show processlist; 2、kill pid;
2、删除数据如何释放空间
答:原理和oracle基本一样,删除不释放。常用innodb引擎,创建数据库的时候设置innodb_file_per_table=1,这样InnoDB会对每个表创建一个数据文件,然后只需要运行OPTIMIZE TABLE 命令就可以释放所有已经删除的磁盘空间
4、备份和恢复
mysql服务器是高层级别的抽象,只能提供逻辑备份和恢复,时间点的恢复是基于日志进行。热备份处理都和对应的引擎有关。
服务器提供的备份
1、逻辑全备份和恢复
答:mysqldump,支持逻辑全备份,逻辑全恢复
2、时间点恢复
答:mysqlbinlog,逻辑基于时间点恢复
引擎提供备份工具
1、InnoDB引擎提供Xtrabackup
2、MyISAM存储引擎提供mysqlhotcopy
3、使用mysql的主从复制机制
5、日常使用
待补充
6、其他
mysql的基于日志的master slave是一大特色