根据MySQL Tuner结果我应该优化什么?

时间:2017-03-08 12:10:59

标签: mysql database-performance query-performance mysqltuner

--------日志文件建议------------------------------

[ - ]日志文件:/var/log/mysqld.log(4K)

[确定]日志文件/var/log/mysqld.log存在

[确定]日志文件/var/log/mysqld.log是可读的。

[确定]日志文件/var/log/mysqld.log不为空

[确定]日志文件/var/log/mysqld.log小于32 Mb

[!!] /var/log/mysqld.log包含21个警告。

[确定] /var/log/mysqld.log不包含任何错误。

[ - ]在/var/log/mysqld.log中检测到3个开始

[ - ] 1)170307 19:53:17 [注意] / usr / libexec / mysqld:准备连接。

[ - ] 2)170307 19:50:51 [注意] / usr / libexec / mysqld:准备连接。

[ - ] 3)170307 19:47:30 [注意] / usr / libexec / mysqld:准备连接。

[ - ]在/var/log/mysqld.log中检测到3次关机

[ - ] 1)170307 19:53:17 [注意] / usr / libexec / mysqld:关闭完成

[ - ] 2)170307 19:50:51 [注意] / usr / libexec / mysqld:关闭完成

[ - ] 3)170307 19:47:29 [注意] / usr / libexec / mysqld:关闭完成

--------存储引擎统计------------------------------

[ - ]状态:+ CSV + InnoDB + MRG_MYISAM

[ - ] MyISAM表格中的数据:33M(表格:29)

[ - ] InnoDB表中的数据:368M(表:52)

[确定]总碎片表:0

--------安全建议------------------------------

[!!]用户' @ jobzmachine'是一个匿名帐户。

[!!]用户' @ localhost'是一个匿名帐户。

[!!]用户' @ jobzmachine'没有设置密码。

[!!]用户' @ localhost'没有设置密码。

[!!]用户' @ jobzmachine'用户名为密码。

[!!]用户' @ localhost'用户名为密码。

[!!]用户'备份@%'没有特定的主机限制。

[!!]用户'搜索@%'没有特定的主机限制。

[!!]没有基本的密码文件列表!

-------- CVE安全建议------------------------------

-

[ - ]由于--cvefile选项未定义而跳过

--------绩效指标------------------------------

[ - ] Up:3m 12s(23K q [123.125 qp​​s],133 conn,TX:77M,RX:2M)

[ - ]读/写:84%/ 16%

[ - ]禁用二进制日志记录

[ - ]物理记忆:31.2G

[ - ] Max MySQL内存:1.6G

[ - ]其他进程内存:2.3G

[ - ]总缓冲区:1.2G全局+每线程2.7M(最多151个线程)

[ - ] P_S最大内存使用量:0B

[ - ] Galera GCache最大内存使用量:0B

[确定]最大内存使用量:1.4G(已安装RAM的4.61%)

[OK]最大可能内存使用量:1.6G(已安装RAM的5.04%)

[确定]其他进程的总内存使用量与可用内存兼容

[确定]慢查询:0%(0 / 23K)

[确定]可用连接的最高使用率:66%(101/151)

[!!]中止连接:13.53%(18/133)

[!!]由于互斥争用,默认情况下可能会禁用查询缓存。

[确定]查询缓存效率:78.2%(11K缓存/ 15K选择)

[确定]每天查询缓存修剪:0

[确定]需要临时表的排序:0%(0个临时排序/ 505排序)

[!!]连接没有索引:1

[!!]在磁盘上创建的临时表:48%(磁盘上142个/总共292个)

[!!]线程缓存命中率:24%(101创建/ 133连接)

[确定]表缓存命中率:88%(56开/ 63开)

[确定]使用的打开文件限制:1%(17 / 1K)

[确定]立即获得表锁:100%(5K立即/ 5K锁)

--------绩效架构------------------------------

[ - ]性能架构已禁用。

[ - ] P_S使用的内存:0B

[ - ]系统架构尚未安装。

-------- ThreadPool指标------------------------------

[ - ] ThreadPool stat被禁用。

-------- MyISAM Metrics ------------------------------

[!!]使用的密钥缓冲区:18.2%(使用24M / 134M缓存)

[确定]密钥缓冲区大小/总MyISAM索引:128.0M / 20.6M

[OK]读取密钥缓冲区命中率:100.0%(393K缓存/ 0读取)

[OK]写入密钥缓冲区命中率:100.0%(1K缓存/ 0写入)

-------- InnoDB Metrics ------------------------------

[ - ] InnoDB已启用。

[ - ] InnoDB线程并发:8

[!!]每个表的InnoDB文件未激活

[OK] InnoDB缓冲池/数据大小:1.0G / 368.2M

[!!]比率InnoDB日志文件大小/ InnoDB缓冲池大小(0.9765625%):5.0M * 2 / 1.0G应该等于25%

[ - ] InnoDB Buffer Pool Chunk Size未在您的版本中使用或定义

[OK] InnoDB读缓冲效率:99.95%(5772058次点击/ 5774714总计)

[!!] InnoDB写日志效率:77.58%(256次点击/总计330次)

[OK] InnoDB日志等待:0.00%(0等待/ 586写入)

-------- AriaDB指标------------------------------

[ - ] AriaDB被禁用。

-------- TokuDB指标------------------------------

[ - ]禁用TokuDB。

-------- XtraDB指标------------------------------

[ - ]禁用XtraDB。

-------- RocksDB度量标准------------------------------

[ - ] RocksDB已停用。

--------蜘蛛指标------------------------------

[ - ]蜘蛛被禁用。

--------连接度量标准------------------------------

[ - ]连接已停用。

-------- Galera Metrics ------------------------------

[ - ]加莱拉被禁用。

--------复制指标------------------------------

[ - ] Galera同步复制:否

[ - ]此服务器没有复制从属设备。

[ - ]这是一个独立的服务器。

--------推荐------------------------------

一般建议:

将警告线控制到/var/log/mysqld.log文件

删除匿名用户帐户 - 有2个匿名帐户。

使用以下SQL语句为用户设置密码(SET PASSWORD FOR&#39; user&#39; @&#39; SpecificDNSorIp&#39; = PASSWORD(&#39; secure_password&#39;);)< / p>

为user @ host设置安全密码(SET PASSWORD FOR&#39; @&#39; SpecificDNSorIp&#39; = PASSWORD(&#39; secure_password&#39;);)

将用户@%的主机限制为用户@ SpecificDNSorIp

MySQL在过去24小时内启动 - 建议可能不准确

减少或消除未关闭的连接和网络问题

调整您的联接查询以始终使用索引

进行调整时,请制作tmp_table_size / max_heap_table _

大小相等

减少没有LIMIT子句的SELECT DISTINCT查询

不应为MySQL和MariaDB 5.5及更低版本

激活性能

考虑从https://github.com/mysql/mysql-sys

安装Sys架构

要调整的变量:

query_cache_type(= 0)

join_buffer_size(&gt; 128.0K,或始终使用带连接的索引)

tmp_table_size(&gt; 32M)

max_heap_table_size(&gt; 32M)

thread_cache_size(&gt; 16384)

performance_schema = OFF禁用PFS

innodb_file_per_table = ON

innodb_log_file_size * innodb_log_files_in_group应该等于缓冲池大小的1/4(= 512M),如果可能的话。

2 个答案:

答案 0 :(得分:0)

  

MySQL在过去24小时内启动 - 建议可能不准确

仅需3分钟!没有足够的时间来收集有用的信息。

但是,通常你不能“调整性能问题”。如果您的查询速度很慢,让我们看看它们,再加上相似表格的SHOW CREATE TABLE

  

[OK] InnoDB缓冲池/数据大小:1.0G / 368.2M

你有一个相当小的数据集;你期望它成长吗?

您的GRANTs可让黑客轻松接管您的计算机。

其他建议大多是次要的 - 到目前为止。

答案 1 :(得分:0)

在你的.cfg / .ini

thread_cache_size = 100    Current suggested cap to avoid thread creation thrashing.   NOT >16384 as suggested by tuner.

需要24小时正常运行后的MySQLTUNER才能获得更有意义的分析/结果。