首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调优Mysql与监控

调优Mysql与监控
EN

Database Administration用户
提问于 2014-08-07 14:45:16
回答 2查看 679关注 0票数 4

我想知道是否有人能为我指出一个MySQL数据库调优的工具/方法。

实际上,my.cnf的调优如下所示:

我的数据库引擎是MyISAM \ Mysql 5.1.73

  • key_buffer =500米
  • sort_buffer_size =256米
  • read_buffer_size =256米
  • read_rnd_buffer_size =256米
  • myisam_sort_buffer_size =256米
  • thread_cache_size = 16
  • thread_concurrency = 32
  • tmp_table_size =500 m#默认33M!
  • max_heap_table_size =500米
  • 跳过-名称-解析
  • 跳过主机缓存
  • myisam_recover =备份,强制
  • query_cache_size=256M

我的电脑是:

代码语言:javascript
复制
Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 16 cores
Linux 2.6.32-5
Memory - 23.58 GB total

我也看过慢速查询,但是您认识或推荐什么呢?

我已经做出了选择:

代码语言:javascript
复制
SELECT 
    CONCAT(ROUND(KBS/POWER(1024,
    IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999),
    SUBSTR(' KMG',IF(PowerOf1024<0,0,
    IF(PowerOf1024>3,0,PowerOf1024))+1,1))
    recommended_key_buffer_size FROM
    (SELECT LEAST(POWER(2,32),KBS1) KBS
    FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables
WHERE engine='MyISAM' AND
    table_schema NOT IN ('information_schema','mysql')) AA ) A,
    (SELECT 2 PowerOf1024) B;

3967 M

EN

回答 2

Database Administration用户

发布于 2014-08-07 15:34:57

没有办法,只有旅途!您可以使用这里启动MySQLTuner --这是一个发出建议的调优脚本--它不会修改服务器上的任何内容,而且我已经看到(无法找到ref,对不起),它对运行时性能的影响是最小的。还有 --但它似乎已经死了。

我将重复MySQLTuner附带的警告:

对您来说,充分了解对MySQL数据库服务器所做的每一项更改是非常重要的。如果您不理解脚本输出的部分内容,或者您不理解建议,则应该咨询您信任的知识渊博的DBA或系统管理员。始终在暂存环境上测试您的更改,并且始终记住,在一个领域的改进可能会对其他领域的MySQL产生负面影响。

有很多关于MySQL的书--目前最受推荐的书是Schwartz等人的高性能SQL。对数据库的持续监视与调优一样重要,因此当事情开始出错时,您至少可以开始将手指指向正确的方向。

另一件非常重要的事情是,您的MySQL数据库只是系统的一部分,使用Linux为iostat、vmstat、sysstat &c提供的工具监视该系统的各个组件也是至关重要的。

你说:

我也看过慢速查询,但是您认识或推荐什么呢?

但是我们没有查询,没有表(显示CREATE blah1,blah2.)--因此很难在这方面提供帮助。这个网站更多的是关于技术问题的具体问题,而不是更广泛的问题,你可以从研究一篇文章中得到更好的答案。

编辑回应OP的评论。

看看施瓦茨的书“这里”的目录。你会发现这是一本很大的书,有很多关于MySQL的内容。更重要的是,它将数据库放在系统的上下文中。如果没有更多的信息,我无法判断,但是您可能需要更改key_buffer_size,或者您的问题可能与该特定变量无关。

首先,我有两个建议--第一,升级到5.6。然后,您就可以获得性能模式( Performance ),允许您正确地分析应用程序--在进行分析之后,您可以继续进行调优。分析是确定您的系统花费时间的地方(在一个不确定的级别上)--一旦您知道了这一点,您就可以对您的调优工作做出合理的逻辑决定--可能是MySQL变量--它可以是增加内存、CPU、磁盘吞吐量或网络带宽(与我前面提到的操作系统分析一起)。

其次,我建议你把你的系统移动到InnoDB --它更好地利用了机器的资源,而且几乎在所有方面都更好--在谷歌上搜索"innodb vs myisam“会给你一卡车链接--看看吧。MyISAM正在接近生命的尽头--请看比尔·卡温摩根·托克尔的评论--这两位都是MySQL世界的大人物。

然后,读一读我推荐的书(是的,我知道,呻吟.)如果你有更具体的问题,请在这里发帖。

免责声明:在生产系统上执行这些更改之前,通常关于测试更改的警告是适用的!

票数 1
EN

Database Administration用户

发布于 2017-10-20 16:08:25

您对MySQLCalculator.com的使用将是您在优化系统的第一步中可以投资的最好的2分钟。仅使用大于默认值的值,前提是您知道这些值将如何改进您对MySQL的使用。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/73413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档