如何优化MySQL数据库?这3个小技巧要知道!

Posted Chihiro.511

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何优化MySQL数据库?这3个小技巧要知道!相关的知识,希望对你有一定的参考价值。

在生活中,相信很多小伙伴都不知道怎么优化mysql吧,而后台也有一些小伙伴跟我反应这个问题,为此,今日摩杜云就为大家详细的介绍一下,希望大家看完之后有一定的收获。

在对MySQL优化之前,我要警告一下大家:

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

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

具体优化MySQL的步骤如下:

1、使用InnoDB存储引擎

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

1.MyISAM:仅在内存中保存索引。

2.InnoDB:在内存中保存索引和数据。

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

下面是如何在你的表上去转换存储引擎的命令:
在这里插入图片描述

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

2、让InnoDB使用所有的内存

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

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

因此,如果你的服务器物理内存是32GB,可以将那个参数设置为多达25GB。
在这里插入图片描述

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

3、让InnoDB多任务运行

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

拥有多于一个的缓冲池的好处有:在多线程同时访问缓冲池时可能会遇到瓶颈,你可以通过启用多缓冲池来最小化这种争用情况。

对于缓冲池数量的官方建议是:为了实现最佳的效果,要综合考虑innodb_buffer_pool_instances和innodb_buffer_pool_size的设置,以确保每个实例至少有不少于1GB的缓冲池。

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

注意:在修改了my.cmf文件后需要重启MySQL才能生效:
在这里插入图片描述

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

以上就是关于“如何优化MySQL数据库”的相关内容教程,相信大家看完之后有一定的收获吧,如果有不清楚的地方,或者想了解更多相关知识的,可以关注摩杜云,更多干货等你来学习!感谢各位的阅读!

以上是关于如何优化MySQL数据库?这3个小技巧要知道!的主要内容,如果未能解决你的问题,请参考以下文章

学习 MySQL 需要知道的 28 个小技巧文末送书

学习 MySQL 需要知道的 28 个小技巧

学习 MySQL 需要知道的 28 个小技巧

学习 MySQL 需要知道的 28 个小技巧

学习 MySQL 需要知道的 28 个小技巧

学习 MySQL 需要知道的 28 个小技巧