|
Post by account_disabled on Jan 27, 2024 11:02:52 GMT
MySQL 仍然是世界上最流行的关系数据库,但它仍然是最未优化的——许多人将其保留为默认值,懒得进一步研究。在本文中,我们将研究之前介绍过的一些 MySQL 优化技巧,并将它们与此后出现的新奇事物结合起来。 Pause Next Unmute Current Time 0:08 / Duration 2:00 Fullscreen 配置优化 第一个——也是被跳过最多的一个!– 性能升级每个MySQL用户应该做的就是调整配置。5.7(当前版本)比其前身具有更好的默认设置,但在这些基础上进行改进仍然很容易。 我们假设您使用的是基于 Linux 的主机或良好的Vagrant盒子,例如我们的Homestead Improve,因此您的配置文件将位于/etc/mysql/my.cnf. 您的安装可能实际上会将辅助配置文件加载到该配置文件中,因此请查看该文件 - 如果该my.cnf文件没有太多内容,则该文件/etc/mysql/mysql.conf.d/mysqld.cnf可能有。 编辑配置 您需要熟悉使用命令行。即使您还没有接触过它,现在也是最好的时机。 如果您在 Vagrant 盒子上进行本地编辑,则可以将文件复制到主文件系统中,方法是将其复制到共享文件夹中并使用常规文本编辑器进行编辑,然后在完成后将其复制回原位。否则,请使用简单的文本编辑器(如 vim)执行意:修改上面的路径以匹 WhatsApp 号码数据 配配置文件的真实位置 - 它可能实际上位于 手动调整 应立即进行以下手动调整。根据这些提示,将其添加到以下部分下的配置文件中缓冲池是内存中缓存数据和索引的存储区域。它用于将经常访问的数据保存在内存中,当您运行专用或虚拟服务器时,数据库通常会成为瓶颈,因此为应用程序的这一部分提供最多的 RAM 是有意义的。因此,我们给它所有 RAM 的 50-70%。MySQL 文档中提供了缓冲池大小调整指南。 日志文件大小在这里得到了很好的解释,但简而言之,它是在擦除日志之前要在日志中存储多少数据。请注意,这种情况下的日志不是错误日志或您可能习惯的日志,而是指示检查点时间,因为对于 MySQL,写入发生在后台,但仍会影响前台性能。 大日志文件意味着更好的性能,因为创建的新检查点更少且更小,但崩溃时的恢复时间更长(需要将更多内容重新写入数据库)。 innodb_flush_log_at_trx_commit此处进行了解释并指示日志文件发生了什么。使用 1 是最安全的设置,因为每次事务后日志都会刷新到磁盘。使用 0 或 2 时,ACID 较低,但性能更高。本例中的差异不足以抵消设置 1 带来的稳定性优势。 innodb_flush_method– 最重要的是关于刷新,这被设置O_DIRECT为避免双缓冲。除非 I/O 系统性能非常低,否则应始终这样做。在大多数托管服务器(例如 DigitalOcean Droplet)上,您将拥有 SSD,因此 I/O 系统将具有高性能。 Percona 还有另一个工具可以帮助我们自动找到剩余的问题。请注意,如果我们在没有进行上述手动调整的情况下运行它,则只能手动识别 4 个修复中的 1 个,因为其他 3 个修复取决于用户偏好和应用程序的环境。 超级英雄超速行驶 变量检查器 要在 Ubuntu 上安装变量检查器这些都不重要,不需要修复。我们唯一可以添加的是用于复制和快照目的的二进制日志记录。 注意:新版本中binlog大小默认为1G,PT不会注明。
|
|