MySQL简单的优化调整

  • 更新时间:2020-05-08 11:35:09
  • 编辑:甄信厚
本站精选了一篇mysql相关的编程文章,网友何英哲根据主题投稿了本篇教程内容,涉及到优化、mysql、优化 MySQL 3 个简单的小调整相关内容,已被487网友关注,涉猎到的知识点内容可以在下方电子书获得。
  • MySQL技术精粹:架构、高级特性、性能优化与集群实战 / 271.3 MB 推荐度:
  • 数据库查询优化器的艺术:原理解析与SQL性能 / 115 MB 推荐度:
  • 《零基础轻松学MySQL 5.7》源代码 / 1.1 MB 推荐度:
  • 《MySQL技术内幕(第5版)》配套资源 / 298.99 KB 推荐度:
  • 最优化方法(修订版) / 14.9 MB 推荐度:
  • 优化 MySQL 3 个简单的小调整

    我并不期望成为一个专家级的 DBA,但是,在我优化 MySQL 时,我推崇 80/20 原则,明确说就是通过简单的调整一些配置,你可以压榨出高达 80% 的性能提升。尤其是在服务器资源越来越便宜的当下。

    警告

    1.没有两个数据库或者应用程序是完全相同的。这里假设我们要调整的数据库是为一个“典型”的 Web 网站服务的,优先考虑的是快速查询、良好的用户体验以及处理大量的流量。

    2.在你对服务器进行优化之前,请做好数据库备份!

    1、 使用 InnoDB 存储引擎

    如果你还在使用 MyISAM 存储引擎,那么是时候转换到 InnoDB 了。有很多的理由都表明 InnoDB 比 MyISAM 更有优势,如果你关注性能,那么,我们来看一下它们是如何利用物理内存的:

    • MyISAM:仅在内存中保存索引。
    • InnoDB:在内存中保存索引和数据。

    结论:保存在内存的内容访问速度要比磁盘上的更快。

    下面是如何在你的表上去转换存储引擎的命令:

    ALTER TABLE table_name ENGINE=InnoDB; 

    注意:你已经创建了所有合适的索引,对吗?为了更好的性能,创建索引永远是第一优先考虑的事情。

    2、 让 InnoDB 使用所有的内存

    你可以在 my.cnf 文件中编辑你的 MySQL 配置。使用 innodb_buffer_pool_size 参数去配置在你的服务器上允许 InnoDB 使用物理内存数量。

    对此(假设你的服务器仅仅运行 MySQL),公认的“经验法则”是设置为你的服务器物理内存的 80%。在保证操作系统不使用交换分区而正常运行所需要的足够内存之后 ,尽可能多地为 MySQL 分配物理内存。

    因此,如果你的服务器物理内存是 32 GB,可以将那个参数设置为多达 25 GB。

    innodb_buffer_pool_size = 25600M 

    *注意:(1)如果你的服务器内存较小并且小于 1 GB。为了适用本文的方法,你应该去升级你的服务器。 (2) 如果你的服务器内存特别大,比如,它有 200 GB,那么,根据一般常识,你也没有必要为操作系统保留多达 40 GB 的内存。 *

    3、 让 InnoDB 多任务运行

    如果服务器上的参数 innodb_buffer_pool_size 的配置是大于 1 GB,将根据参数 innodb_buffer_pool_instances 的设置, 将 InnoDB 的缓冲池划分为多个。

    拥有多于一个的缓冲池的好处有:

    在多线程同时访问缓冲池时可能会遇到瓶颈。你可以通过启用多缓冲池来最小化这种争用情况:

    对于缓冲池数量的官方建议是:

    为了实现最佳的效果,要综合考虑 innodb_buffer_pool_instances 和 innodb_buffer_pool_size 的设置,以确保每个实例至少有不小于 1 GB 的缓冲池。

    因此,在我们的示例中,将参数 innodb_buffer_pool_size 设置为 25 GB 的拥有 32 GB 物理内存的服务器上。一个合适的设置为 25600M / 24 = 1.06 GB

    innodb_buffer_pool_instances = 24

    注意!

    在修改了 my.cnf 文件后需要重启 MySQL 才能生效:

    sudo service mysql restart

    还有更多更科学的方法来优化这些参数,但是这几点可以作为一个通用准则来应用,将使你的 MySQL 服务器性能更好。

    总结

    以上所述是小编给大家介绍的优化 MySQL 3 个简单的小调整,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!

    mysql相关教程

    • mysql分页优化案例详解

      这篇文章主要介绍了MySQL优化案例系列-mysql分页优化,需要的朋友可以参考下

      发布时间:2019-06-20

    • my.ini优化mysql数据库性能的重要参数

      这篇文章主要介绍了my.ini优化mysql数据库性能的十个参数(推荐),需要的朋友可以参考下

      发布时间:2019-11-26

    • 理解数据库Mysql性能优化

      这篇文章主要介绍了数据库Mysql性能优化的相关资料,需要的朋友可以参考下

      发布时间:2020-02-28

    • MySQL 5.7增强版Semisync Replication性能优化知识点总结

      这篇文章主要介绍了MySQL 5.7增强版Semisync Replication性能优化,本文着重讲解支持发送binlog和接受ack的异步化、支持在事务commit前等待ACK两项内容,需要的朋友可以参考下

      发布时间:2019-11-06

    • MySQL性能优化技巧

      你完成了你的品牌新的应用程序,一切工作就像一个魅力;突然间,一个大爆发的用户杀死你的MySQL服务器,您的网站已关闭,是什么问题导致的呢?以下是MySQL性能优化的一些技巧,将帮助你,帮

      发布时间:2020-02-19

    • MySQL存储过程的优化详解

      在编写MySQL存储过程的过程中,我们会时不时地需要对某些存储过程进行优化,其目的是确保代码的可读性、正确性及运行性能。本文以作者实际工作为背景,介绍了对某一个MySQL存储过程优化

      发布时间:2020-03-02

    用户留言