本文向您展示了MySQL的细微调整。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。
我不期望成为一名专家数据库管理员。然而,当我优化MySQL时,我钦佩80/20原则。具体来说,通过简单地调整一些配置,您可以挤出高达80%的性能提升。尤其是在服务器资源越来越便宜的时候。
警告
没有两个数据库或应用程序是相同的。这里假设我们要调整的数据库服务于一个“典型”的网站,优先考虑快速查询、良好的用户体验和处理大量流量。
请在优化服务器之前备份数据库!
00-1010如果你还在使用MyISAM存储引擎,是时候切换到InnoDB了。InnoDB比MyISAM有优势的原因有很多。如果您关心性能,让我们看看他们如何使用物理内存:
MyISAM:只在内存中保存索引。
InnoDB:将索引和数据保存在内存中。
结论:内存中存储的内容访问速度比磁盘上的快。
以下是如何翻译您桌面上存储引擎的命令:
一个
2
ALTER TABLE TABLE _ name ENgine=Innodb;
注意:您已经创建了所有合适的索引,对吗?为了获得更好的性能,创建索引始终是第一要务。
00-1010您可以在my.cnf文件中编辑您的MySQL配置。使用InnoDB_buffer_pool_size参数配置服务器上InnoDB允许的物理内存量。
为此(假设您的服务器只运行MySQL),公认的“经验法则”是将其设置为服务器物理内存的80%。在保证操作系统正常运行需要足够的内存后,不使用交换分区,为MySQL分配尽可能多的物理内存。
因此,如果服务器的物理内存为32 GB,您可以将该参数设置为25 GB。
一个
2
innodb_buffer_pool_size=25600M
*注意:(1)如果您的服务器内存较小且小于1 GB。为了应用此方法,您应该升级服务器。(2)如果你的服务器内存特别大,比如有200 GB,那么按照常理,你不需要为操作系统预留多达40 GB的内存。*
1、 使用 InnoDB 存储引擎
如果服务器上参数InnoDB_buffer_pool_size的配置大于1 GB,InnoDB的缓冲池将根据参数innodb_buffer_pool_instances的设置分成若干个。
拥有多个缓冲池的好处是:
当多个线程同时访问缓冲池时,可能会遇到瓶颈。您可以通过启用多个缓冲池来最小化这种争用:
缓冲池数量的官方建议是:
为达到最佳效果,应综合考虑innodb_buffer_pool_instances和innodb_buffer_pool_size的设置,确保每个实例至少有1 GB缓冲池。
因此,在我们的示例中,参数innodb_buffer_pool_size被设置为具有32 GB物理内存的25 GB服务器。合适的设置是25600M /24=1.06 GB。
一个
2
innodb _ buffer _ pool _ instances=24
00-1010修改my.cnf文件后,MySQL需要重新启动才能生效:
一个
2
sudo服务mysql重启
优化这些参数的科学方法越来越多,但这些要点可以作为一个通用规则来应用,这将使您的MySQL服务器性能更好。
以上内容就是MySQL有哪些小优化。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识储备,请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/47511.html