001 MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件。
002 MySQL触发器是自动执行以响应与表相关联的特定事件的存储程序,例如插入,更新或删除记录
003 Mysql 不能调试存储过程,存储过程大量的逻辑操作,会导致CPU使用率增加
004 存储函数,CREATE FUNCTION
存储的函数是返回单个值的特殊类型的存储程序。您使用存储的函数来封装在SQL语句或存储的程序中可重用的常用公式或业务规则。
005 最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等。
006 搜索函数,like,正则运算
当文本列较大并且表中的行数增加时
007 MySQL性能分析、监控预警、容量扩展问题上
带界面的工具
1、MySQL可视化工具
a、MySQL查询浏览器(MySQL Query Browser)
b、MySQL管理员(MySQL Administrator)
c、MySQL迁移工具箱(MySQL Migration Tookit)
d、MySQL工作台(MySQL Workbench):MySQL的建模工具。
-
2、SQLyog
SQLyog是最常用的MySQL可视化工具,只能用于win下 -
3.phpMyAdmin
phpMyAdmin是一款很流行的管理工具,它基于Web界面来管理MySQL服务器 -
监控
它接收系统的测量值,如果有超出安全范围的,就通过发出警告提醒管理员
监控界流行一句话:只要用顺了Nagios,你就永远不会再想到其它监控系统。
Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。
Nagios最初被设计为在Linux系统之上运行,然而它同样可以在类Unix的系统之上运行。
Nagios 特征包括:监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
监控主机资源(处理器负荷、磁盘利用率等);
简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
并行服务检查机制;
具备定义网络分层结构的能力,用”parent”主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
自动的日志回滚;可以支持并实现对主机的冗余监控;可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
i、Zenoss
Zenoss是用Python编写的,拥有基于浏览器的用户界面,并使用了Ajax使操作更加快捷而富有效率。它将监控、报警、趋势显示、图表显示和记录历史数据等功能合成在一个统一的工具里,它还能在网上自动发现资源,在默认情况下,Zenoss使用SNMP从远程机器上收集数据,但它也可以使用SSH,并且支持Nagios插件。
ii、Hyperic HQ
Hyperic HQ是一款基于Java的监控系统,它的目标跟其他同类别的软件不太一样,它要成为企业级的监控系统。跟Zenoss一样,它也能自动发现资源,支持Nagios插件,但是它的逻辑组织和架构很不一样,显得有点庞大。至于它是不是合适你的需求,那要看你的参数设置和监控的方式了。
iii、OpenNMS
OpenNMS是由Java编写的,拥有一个活跃的开发者社区。它具备了常规的功能,例如监控和报警,也加入了图表和趋势显示的功能。它的目标是高性能、伸缩性、自动化以及良好的兼容性。跟Hyperic一样,它也企图成为一款企业级的监控软件,可以用于大型的关键系统上。
iv、Groundwork Open Source
Groundwork Open Source实际上是基于Nagios的,它把Nagios和其他几个工具集成为一个系统,并安上一个统一的门户界面。描述它的最好方法可能就是:如果你对Nagios、Cacti及其他工具很熟悉,并且能够花大量的时间把它们无缝地集成在一起的话,你也能在家庭作坊里做一个出来。
v、Zabbix
Zabbix是一个开源监控系统,在许多方面跟Nagios很相像,但是也有一些关键的不同点。例如:它把所有配置信息和其他数据都存放在一个数据库里,而不是放在配置文件里;它比Nagios存储了更多类型的数据,这样可以生成更好的趋势图和历史报告。它的网络图表和可视化功能也优于Nagios。很多使用它的人发现它更易配置,更具有兼容性。说起来它也能比Nagios少,它的报警功能也不够高级。
2、MySQL监控和建议
企业版
3、MONyog
一个轻量级的无代理的监控系统
4、基于RRDTool的系统
不算是一个监控系统
很多组织里都是使用几种脚本或程序–这些一般都是自制的–从服务器那里读取信息,然后再保存到循环数据库(Round-robin database,RRD)文件里
它们还都带有强大的图表工具,能够生成漂亮的 图表。
交互工具
innotop
mtop
是一个显示MySQL服务器查询状态的监视器。功能包括显示完成的查询进程,显示查询优化的信息及杀死一个查询。附加功能包括服务器性能统计,配置信息和调整技巧提示。
mytop
mytop就是類似top的MySQL監察工具。執行mytop後,它會每隔幾秒更新一次,而且也可以針對性地監察某一個資料庫
分析工具
如监测服务器,找出还可以优化和调优的功能区域。
1、Mysqlreport
2、Mysqlsla
监控性能的指标内容
1、os层面
空间监控df -h ,防止文件系统空间满造成数据库hang住
性能cpu监控
vmstat
r队列,这个队列需要小于cpu核数,最大不要超过4倍???
top load average队列数量,同上???
top中sys cpu占比小于5%,iowait占比小于5%,user占比小于70%
top H线程占cpu占比,不要出现70%+的线程
2、内存
vmstat中出现swap in out ,free至少2G以上
3、io
iostat -x 中 r/s w/s
svctm<=6ms
%util<80%
4、网络监控
sar监控中,网络带宽不需要达到90%,一般1000Mbit/s 带宽足够使用,除了备份等场景
5、数据库
真实负载监控
| Innodb_rows_deleted | 99493 |
| Innodb_rows_inserted | 1376624 |
| Innodb_rows_read | 12895545 |
| Innodb_rows_updated | 2720746 |
| Queries | 8932356 |:qps,所有查询语句(i+d+u+s)的数量,如执行一个存储过程,会把存储过程中的执行sql数量也包括。questions是一个存储过程算一个,不管存过程中有多少语句。
tps:
显示的tps:
| Com_commit | 338336 |
| Com_rollback | 1057 |
隐式tps:
| Handler_commit | 12519502 |
| Handler_rollback | 2114 |
---------------------
作者:宸小浩属牛
IO相关
物理读相关:
Innodb_buffer_pool_read_requests
Innodb_buffer_pool_reads
Innodb_pages_read
Handler_read_rnd_next 全表扫描
物理写相关
Innodb_buffer_pool_pages_flushed
Innodb_buffer_pool_write_requests
Innodb_dblwr_writes
Innodb_dblwr_pages_written
Innodb_log_writes
关注pending(读不动,写不动---IO有问题)的数量:读写挂起,日志挂起
Innodb_data_pending_reads |0 |
内存相关
Innodb_buffer_pool_wait_free 内存少,物理读取不了,为0 表示内存中总有可用页。
连接
| Connection_errors_max_connections | 0 |因为连接数达到最大而不能连接所产生的错误次数。>0 表示连接数超了。
用户空间相关
| Sort_merge_passes | 0 |sort 用户空间太小发生磁盘排序的数量。
| Binlog_cache_disk_use | 0 |:binlog 用户空间太小发生使用磁盘空间的数量。
锁相关
| Table_locks_waited | 0 |产生表锁等待的数量
慢查询
| Slow_queries | 508 |:慢查询执行次数
慢查询日志的解读
对慢查询日志进行tail -f式的解读
产生的日志量相关:——产生的redo数量
| Innodb_os_log_written | 1255217664 |redo log 产生的量,字节数
show master status;隔段时间监控的差值除以时间间隔得到每秒产生binlog 日志量。
网络相关
| Bytes_received | 372184964 |
| Bytes_sent | 1996745853 |
全表扫描
PT
ZABBIX
SHELL脚本
网友评论