我并不期望成为一个专家级的DBA,但是,在我优化MySQL时,我推崇80/20原则,明确说就是通过简单的调整一些配置,你可以压榨出高达80%的性能提升。尤其是在服务器资源越来越便宜的当下。
没有两个数据库或者应用程序是完全相同的。这里假设我们要调整的数据库是为一个“典型”的Web网站服务的,优先考虑的是快速查询、良好的用户体验以及处理大量的流量。
如果你还在使用MyISAM存储引擎,那么是时候转换到InnoDB了。有很多的理由都表明InnoDB比MyISAM更有优势,如果你关注性能,那么,我们来看一下它们是如何利用物理内存的:
注意:你已经创建了所有合适的索引,对吗?为了更好的性能,创建索引永远是第一优先考虑的事情。
你可以在f文件中编辑你的MySQL配置。使用innodb_buffer_pool_size参数去配置在你的服务器上允许InnoDB使用物理内存数量。
对此(假设你的服务器仅仅运行MySQL),公认的“经验法则”是设置为你的服务器物理内存的80%。在保证操作系统不使用交换分区而正常运行所需要的足够内存之后,尽可能多地为MySQL分配物理内存。
(1)如果你的服务器内存较小并且小于1GB。为了适用本文的方法,你应该去升级你的服务器。
(2)如果你的服务器内存特别大,比如,它有200GB,那么,根据一般常识,你也没有必要为操作系统保留多达40GB的内存。*
如果服务器上的参数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
还有更多更科学的方法来优化这些参数,但是这几点可以作为一个通用准则来应用,将使你的MySQL服务器性能更好。
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。