进去通过阿里云数据库健康监控发现了许多问题,特意查找资料研究了一下数据库的调优配置方案:
阿里云数据库健康监控:
1)云数据库RDS/实例列表/一键诊断 -》 空间分析
2)云数据库RDS/实例列表/日志管理 -》 慢日志明细 & 慢日志统计
3)云数据库RDS/性能中心 =》巡检评分 =》 报告 (评分报告和慢SQL)
结合自己服务器的配置情况(4核8G的mysql RDS数据库)针对以下常见参数进行了调优(my.cnf )
MYSQL调优设置(专用MySql数据库服务器常见参数分析):
============================================================
#它指定MySQL一次可以打开的最大.ibd文件数。最小值为10。
show variables like '%innodb_open_file%'; =》 3000
show variables like '%query_cache_size%'; =》 0 或 1024M
#用于普通索引扫描、范围索引扫描和不使用的联接的缓冲区的最小大小#索引,从而执行完整的表扫描。
show variables like '%join_buffer_size%'; =》 442368
#在专用数据库服务器上,您可以设置#参数高达机器物理内存大小的80%。不要设置它#不过,太大了,因为物理内存的竞争可能#导致操作系统中出现分页
show variables like '%innodb_buffer_pool_size%'; =》 6442450944 (6G)
#日志文件的大小限制为缓冲池大小的25%-100%,以避免 #日志文件覆盖时不需要的缓冲池刷新活动。然而#请注意,较大的日志文件大小将增加恢复过程。
show variables like '%innodb_log_file_size%'; =》 1572864000 (1500M)
#一个数据包或任何生成的或中间字符串的最大大小,或由#mysql_stmt_send_long_data() C API函数。 (设置太小了会影响数据导入失败)
max_allowed_packet=64M; =》 1073741824; (1G) show variables like '%innodb_log_file_size%'
其它配置参考:
[root@iZuf63p0bejzq5ocuqupstZ ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#开启慢查询日志记录
slow_query_log=on
#查询时间超过1秒的sql语句会被记录
long_query_time=0.9
#记录没有使用索引的查询
#log_queries_not_using_indexes=0
#记录慢查询日志的文件地址
slow_query_log_file=/data/slowQueryLog/slowQuery.log
query_cache_size=120M
query_cache_type=ON
max_allowed_packet=500M
#禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力
local-infile=0
skip-host-cache
skip-name-resolve
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid