MySQL性能优化与数据备份.ppt
《MySQL性能优化与数据备份.ppt》由会员分享,可在线阅读,更多相关《MySQL性能优化与数据备份.ppt(54页珍藏版)》请在三一文库上搜索。
1、MySQL优化实践,MySQL性能优化知识分享,Agenda,内容提要 MySQL常见工具应用 MySQL优化 MySQL架构 MySQL备份,Summary,用于员工培训和分享,主要针对有一定开发经验的工程师 适用于高并发,海量数据的互联网环境 以解决具体问题为主要目标,比如个人空间的DB优化 针对优化任何一个方面都是个很深的话题,本次技术分享只能做到概要,如果大家有需求,有时间可以针对某方面的优化在做详细的技术交流,Agenda,内容提要 MySQL常见工具应用 MySQL优化 MySQL架构 MySQL备份,ySQL常见工具应用,常见:mysql ,mysqladmin,mysqldum
2、p,myslqimport mysqlcheck,myisamchk,,mysqlpack 备份:mysqlhotcopy , xtrabackup 性能:mysqlreport,mysqlbinlog, mytop,innotop msyqldumpslow/mysqlsla, mysqltuner 压力测试:mysqlslap 其他官方工具和第三方工具,常见工具一,mysql: 1 类似于sqlplus,mysql help 2 “-e ”参数,常用于MySQL检查和监控脚本中 3 “-H” “-X” “-prompt” “-tee” 4 与f的联系 mysqladmin:常用于监控脚本(
3、状态检查,统计信息的flush, 创建和删除数据库,关闭MySQL Server) mysqladmin utest ptest hlocalhost ping mysqladmin utest ptest hlocalhost status mysqladmin utest ptest hlocalhost processlist mysqladmin utest ptest hlocalhost shutdown ps:mysql与mysqladmin区别,常见工具二,mysqldump: 1 “-T”指定格式文本文件 同select * into OUTFILE from 2 “-d”参
4、数只生成结构 “-delayed-insert” 延迟插入(队列) mysqlimport: 1 导入指定格式的文件,如csv文件 2 LOAD DATA INFILE mysqlcheck: 1 4项功能:check,repair,analyze,optimite 2 innodb不支持修复功能 myisamchk: 1 类似mysqlcheck c/-r,只对myisam的索引文件有效 2 常用修复表的二种方法: mysqlcheck -utest -ptest -r -o DB myisamchk -r *.MYI,性能分析一,mysqlreport: 1 perl语言编写的MySQL数
5、据库监控脚本 2 友好的方式显示 MySQL状态变量 3 优点:快速的查看各种状态参数组,无须手工计算 4 mysqlreport user root password 1 mysqlreport host 117.79.91.30 user admin password 1 5 报告样单: http:/ 6 详细解释: http:/ 1 类似于系统的top, 对mysql进行即时监控 2 mytop -utest -ptest -h remot_host 3 报告样单: http:/ 4 详细解释: 第一行主机名称,至今 运行时间 第二行的 Queries -至今查询总数,另外还有目前每秒处
6、理的查询数和速度。 第三行的 Key Efficiency -缓存命中率,如果太低了你可能要调整你的 MySQL 设置,或者调整一下表的结构,后面还有目前的进出速度。,性能分析三,mysqlsla: 1 一款MySQL的日志分析工具 2 功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等 3 mysqlsla -user=root -password= -ex -socket=/tmp/mysql.sock -lt slow slow.log mysqlsla -user=root -password= -ex -socket=/tmp/mysql.s
7、ock -lt general /data/mysql/test.log 5 4 报告样单: http:/ 5 详细解释: http:/ MySQL常见工具应用 MySQL优化 MySQL架构 MySQL备份,MySQL优化的大方向,服务器硬件,存储,网络环境 (磁盘读/写速度,CPU主频周期,内存带宽,网络连接速度,网络带宽等) 服务器系统(版本选择,内核选择,内核参数等) 应用: (缓存系统,TCMalloc) f各项配置(log-bin,禁用dns查询,超时时间,文件系统外部锁,table_cache,Query_cache等) 存储引擎,表,SQL查询,索引 (根据应用选择合适存储引擎
8、(Myisam OR INODB OR Other),设计好SQL和索引(explain,profiling) ,应用各种工具分析系统性能瓶颈,有针对性的调节) 基础架构 (mysql复制,负载均衡,读写分离, mysql集群,大表的切割(水平切割和垂直切割)等),MySQL 架构,影响MySQL性能的因素,商业需求对性能的影响 1 不合理的需求,如论坛帖子总量的统计(实时更新) 2 无用功能堆积,使系统过于复杂,影响整体性能 系统架构对于性能的影响 1 不适合存在库的数据(二进制多媒体数据,流水队列数据超大文本数据) 2 是否利用了应用层cache机制(系统各种配置及规则数据,活跃用户的基本
9、信息数据,个性化定制数据,准实时的统计信息数据,访问频繁但变更少的数据) 3 数据层实现是否精简?(优化的SQL) Schema设计对性能的影响 硬件环境对性能的影响(IOPS,磁盘和内存,CPU,存储),硬件设备,多CPU多Core?,内存永远不嫌大 -优化数据库最廉价有效的方案 使用RAID10多磁盘提IO能力或者用NAS,SAN UPS,RAID要带电池(BBU(电池备份单元) 硬盘 -优化完参数后,提高性能最显著的方法 全千兆网络环境,系统调优,Linux最常见,熟悉的人多,好维护 sun的Solaris和服务器对MySQL有专门的优化 全部采用64位版本 选择稳定内核(权衡稳定,性能
10、,功能) 综合比较XFS文件系统是个不错的选择 调整系统默认内核参数(例如TCP/IP堆栈连接数),应用优化,数据库只负责数据,不管逻辑 使用Google的TCMalloc库,提高并发的稳定性 对软件尽量都采用静态编译优化,提高性能 避免硬盘操作 使用大量的缓存,降低对数据库的查询请求 -增加缓存层(持久化,非持久化) 架构上的调整(基于主从复制的扩展,Sharding,分区) key-value database -Tokyo Cabinet;Redis;MongDB;MemcacheDB. 把复杂的判断和逻辑留给代码,而不是数据库,Schema的优化,高效的模型设计(需求为首,性能为目标)
11、 表字段适度冗余-尽量减少join 大字段垂直分拆-summary优化 大表水平拆分-基于类型的分拆 考虑扩充的情况下用最省的类型 -bool or int;char() or varchar(); ip类型 -inet_aton 和inet_ntoa 函数 命名规范 表的设计。范式,反范式,索引的优化,MySQL只能在索引的最左边上搜索有效 索引在存储引擎上实现,而不是服务器层 一般针对数据分散的关键字进行建立索引 尽量把索引建立在int,varchar类似的字段上 在建立聚集索引的时候,要照顾到查询的sql 不要建立过多的索引(可考虑聚集索引),否则更新 索引时间长 尽量不要使用唯一索引,
12、索引的优化(续),主键占用空间越小越好 不要用随机值做主键。比如MD5 根据主键查询速度最快 联合索引 -最左前缀 不做不必要的索引 -空间;时间;缓存 只有几个值的字段不必索引,MySQL Server优化,MySQL 安装优化 源码静态编译,定制化MySQL MySQL 日志设置优化 binlog:binlog_cache_size max_binlog_cache_size max_binlog_size sync_binlog slowlog:slow_query_log long_query_time slow_query_log_file long_queries_not_usin
13、g_indexs,Mf的优化,show status like show innodb status show (global) variables like skip-name-resolve thread_concurrency default-character-set,Query Cache优化,实现原理(query语句-hash桶(hash链表),Result Set-内存Cache) ps:任何表的任何一条数据发生变化,会通知Query cache 负面影响 query语句的hash运算以及hash查找消耗资源(每秒几千?) query cache的失效问题(表变更频繁) quer
14、y cache缓存的是Result Set,而不是数据页(多次cache) 适度使用query cache(扬长避短) SQL Hint: SQL_NO_CACHE和SQL_CACHE 有些Result Set很大,内存不足?query_cache_limit,Query Cache优化(续),show variables like %query_cache%; have_query_cache query_cache_limit (1MB) query_cache_min_res_unit (4KB) query_cache_size query_cache_type query_cache
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 性能 优化 数据 备份
链接地址:https://www.31doc.com/p-5019947.html