mysql平台优化

上传人:aa****6 文档编号:53377013 上传时间:2018-08-30 格式:PPT 页数:24 大小:372KB
返回 下载 相关 举报
mysql平台优化_第1页
第1页 / 共24页
mysql平台优化_第2页
第2页 / 共24页
mysql平台优化_第3页
第3页 / 共24页
mysql平台优化_第4页
第4页 / 共24页
mysql平台优化_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《mysql平台优化》由会员分享,可在线阅读,更多相关《mysql平台优化(24页珍藏版)》请在金锄头文库上搜索。

1、Mysql优化,linux平台,Linux 下Mysql优化,需求监控/分析解决总结,需求,从应用提需求的时候就要开始优化 1 table engine的选择 2 表结构,Table Engine 选择,table engine: Myisam Innodb 一般情况下我们只用到上述两种table engine 事务支持 = Innodb 并发读写 = Innodb 其他情况 = Myisam,表结构,Myisam 空间换速度? Row_format = Fixed 不用varchar,用char 不用text,blob,表结构,Innodb 情况与Mysiam正好相反,空间=速度 用varc

2、har,不用char primary key很重要,尽量缩短它的长度.,监控,OS 级别(vmstat,iostat,top等等) slow query log show status, show processlist, show innodb status profiling (mysql 5.0+) explain sql 其他工具,如cacti,监控 os 级别,vmstat -S M 3,监控 os 级别,iostat -dkx 3,监控 slow log,# Time: 090220 15:28:45 # UserHost: dbuserdbuser 192.168.0.1 # Q

3、uery_time: 11 Lock_time: 0 Rows_sent: 0 Rows_examined: 0 delete from data_stat where pkey IN (0013a96190db, 00e04d0706f8, 00e04d0710b0, 00e04d074a41, 5JT46KT7, PFD210S2C2UVJE);,监控 slow log,几个slow log 分析工具 mysqldumpslow - mysql 自带 mysqlsla - 据说不错 mysql-explain-slow-log mysql-log-filter myprofi,监控 sho

4、w status/processlist,show global status关注key hit ratio, qcache hit ratio,lock,show query,innodb buffer hit ratio,innodb data/log write/read show processlist关注异常状态的查询,或者耗时长的查询 show innodb status关注log flush状态,锁状态,事务状态,内存分配消耗,监控 show status/processlist,show innodb status 显示不全?启用innodb_monitor:CREATE TA

5、BLE innodb_monitor (a INT) ENGINE=INNODB;相关信息会输出到.err日志文件停止innodb_monitor:DROP TABLE innodb_monitor;,Profiling Mysql (5.0+),要使用profiling, 在编译的时候加入-enable-profiling, 然后打开profile功能. mysqSET profiling=1;执行一条语句看看 mysql select * from user_xxx limit 1000; +-+-+-+ | a | b | c | +-+-+-+ | 22494895 | 3 | 3 |

6、 | 32781498 | 3 | 1 | | 36392153 | 3 | 1 | | 31142213 | 3 | 2 | | 12447081 | 1 | 1 |刚才执行的语句的profile已经被记录下来了.mysql show profiles; +-+-+-+ | Query_ID | Duration | Query | +-+-+-+ | 1 | 0.00005900 | select * from user_xxx limit 1000 | +-+-+-+还可以看cpu, io这些详细的情况.mysql show profile cpu, block io for query

7、 1; +-+-+-+-+-+-+ | Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out | +-+-+-+-+-+-+ | starting | 0.000017 | 0.001000 | 0.000000 | 0 | 0 | | checking query cache for query | 0.000007 | 0.000000 | 0.000000 | 0 | 0 | | checking privileges on cached | 0.000004 | 0.000000 | 0.000

8、000 | 0 | 0 | | sending cached result to clien | 0.000018 | 0.000000 | 0.000000 | 0 | 0 | | logging slow query | 0.000002 | 0.000000 | 0.000000 | 0 | 0 | | cleaning up | 0.000011 | 0.000000 | 0.000000 | 0 | 0 | +-+-+-+-+-+-+,explain sql,表的读取顺序 可能用到哪些索引,实际用了哪些索引 查询优化器从每个表中预计读取的记录数(rows) 其他额外信息,尽量避免Us

9、ing filesort/Using temporary,其他工具,用工具生产监控图,如cacti,解决,硬件 CPU,内存,磁盘,网络 软件 kernel (简洁的kernel,sysctl参数,IO策略) Mysql (编译参数,版本,patch) 文件系统 程序架构,硬件,升级硬件,立竿见影 更快cpu 更大内存 更快磁盘/阵列 应用服务器跟数据库服务器在同一内网, 至少采用千兆以太网互联. 升级bios, 阵列卡firmware.,软件,kernel 使用更稳定更高效的版本 编译最小化kernel,不用的module一律去掉. sysctl调整参数 IO策略 title Red Hat

10、 Enterprise Linux AS (2.6.28.8)root (hd0,0)kernel /boot/vmlinuz-2.6.28.8 ro root=LABEL=/ elevator=deadline,软件,Mysql 编译优化,采用静态编译,专用编译器等http:/ 采用合适的Mysql版本.通常新版本效率不如旧版本,但是可以利用新版本带来的新功能来提升系统性能. 第三方发布的patch 如google mysql patch,percona patch: http:/ 4. 参数调整 Key Buffer = Myisam 索引缓存 Query Cache = 查询结果缓存 S

11、ort/read/join Buffer = 排序/全表扫描/连表缓存 Slow Query = 记录执行时间长的查询 tmpdir = 可以放在tmpfs上 innodb_buffer_pool_size = innodb 最重要设置,软件,文件系统个人推荐使用XFS,比古老的ext3提供更好的性能.另外,ZFS可以提供文件系统级别的raid,snapshot,文件系统CRC等等功能,可惜由于授权原因,暂时在linux上还看不到.,程序架构,垂直/水平切分服务器/数据库,表 Mysql复制,实现读写分离 更新频繁的表可以采用内存表 用统计表定时保存统计结果,而不是在大表上直接计算结果 编写存储过程/函数来代替大量交互 优化索引的使用 合理使用query cache 缩短每个事务 尽量减少线上的表的记录数量 适当的冗余,总结,每一项改进效果可能不大,不过叠加起来就会比较可观 善用网络资源! 学会提问的技巧!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号