Den*_* G. 15 mysql database performance
在处理更大的表(> 50k记录,每个表总共大约100MB)时,优化MySQL安装以获得最佳性能的最佳实践是什么?我们目前正在考虑重写DelphiFeeds.com(Delphi编程社区的新闻站点)并注意到简单的Update语句可能需要50ms.这似乎很多.是否有任何我们应该启用/设置的配置设置通常在标准MySQL安装上禁用(例如,利用更多RAM来缓存查询和数据等)?
此外,存储引擎的选择对性能有何影响?我们计划使用InnoDB,但如果出于性能原因推荐使用MyISAM,我们可能会使用MyISAM.
Bil*_*win 16
"最佳实践"是:
订阅http://www.mysqlperformanceblog.com上的RSS源并阅读其历史文章.对于与绩效相关的智慧而言,这是一个非常有用的资源.例如,您询问了InnoDB与MyISAM的关系.他们的结论是:InnoDB的性能平均比MyISAM高约30%.虽然还有一些使用场景,其中MyISAM优于InnoDB.
该博客的作者也是@Andrew Barnett提到的"高性能MySQL"的合着者.
来自@ʞɔıu的评论:如何判断你是否受I/O限制而不是CPU绑定与内存绑定是平台相关的.操作系统可能提供ps,iostat,vmstat或top等工具.或者,如果您的操作系统没有提供第三方工具,您可能需要获得第三方工具.
基本上,无论哪种资源与100%利用率/饱和度挂钩,都可能成为您的瓶颈.如果您的CPU负载较低,但您的硬件的I/O负载达到最大值,那么您将受到I/O限制.
然而,这只是一个数据点.补救措施也可能取决于其他因素.例如,复杂的SQL查询可能正在执行文件排序,这会使I/O忙碌.你应该向它投掷更多/更快的硬件,还是应该重新设计查询以避免文件存储?
在StackOverflow帖子中总结了太多因素,并且关于该主题的许多书籍都支持这一点.保持数据库有效运作并充分利用资源是一项全职工作,需要专业技能和不断学习.
杰夫阿特伍德刚写了一篇关于在系统中找到瓶颈的好文章:
很难广泛宣传,但可以采用适度的高级视图.
innodb_flush_log_at_trx_commit为1以通过MyISAM获得性能.INSERT DELAYED也可以是有用的),但是有一个批处理过程可以将MySQL中的更新从那里移到所有读取的地方.这有变化.UPDATE如果"长"更新每天只发生一次,那么您可能认为发生的很长时间实际上可能非常微不足道.| 归档时间: |
|
| 查看次数: |
6000 次 |
| 最近记录: |