首页>>技术前沿>>B/S,C/S软件系统开发
这三件事能让你的数据库更快
作者:西安软件开发公司 | 原创 来源:西安软件开发公司 | 时间:2018年7月20日| 点击:0次 | 【评论】

         在服务器资源越来越便宜的当下,我们可以简单的调整一些配置,从而压榨出高达 80% 的性能提升。这里假设我们要调整的数据库是为一个“典型”的 Web 网站服务的,优先考虑的是快速查询、良好的用户体验以及处理大量的流量。

         


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

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 才能生效。

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: 数据库 优化 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、弈聪软件网站内容中凡注明“来源:XXX(非陕西弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,APP开发,微信小程序开发,大数据平台开发,区块链技术开发等软件开发技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“陕西弈聪”的作品系本站版权所有,任何人转载请署名来源,否则陕西弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。