当前位置:首页 > 前端

教你五招,快速提升MySQL可扩展性

作者:it技术知识网 阅读次数: 时间:2019-05-08 11:06:15
教你五招,快速提升MySQL的可扩展性
教你五招,快速提升MySQL可扩展性

在可扩展性方面,客户的要求也越来越高,功能列表经常会出现20,五0年甚至高达100项多要求,但在一般情况下,我们可以把它们缩短为5个大类来解决可扩展性问题五种方式:

1。调整查询操作

查询优化可以让你付出最少的精力得到最大的结果。搜索功能完美的发挥,满足业务需求,不会被压倒过大的流量和重物。这就是为什么我们经常看到越来越多的客户遇到了麻烦,因为他们访问网站越来越多,可以是具有挑战性的可扩展性正变得越来越严重,这就是问题的所在。该网站的角落不经常使用的网页和查询优化是不必要的,而这些网页不会收到一个真实的流量。据做一些调整,以反映网络应用是非常普遍的做法,和它的工作。

查询优化器需要启用慢查询日志,并不断观察。使用功能强大的工具MK-查询消化这Maatkit套件来分析日志,也确定标签组log_queries_not_using_indexes。一旦你找到一个严重的资源密集型查询,就必须优化它。使用EXPLAIN解释机制,利用使用探查,观察指标,创建丢失的指数,它是如何添加和排序的理解。

2。使用主 - 主复制

主动 - 被动模式的主 - 主复制,也称为复制周期,带来的不仅是高可用性,可以带来高可扩展性。这是因为你可以立即给你的应用程序被分配到一个只读的从盘。许多Web应用程序是根据80/20定律分,活动的80%用来阅读或选择,分配给剩余的INSERT和UPDATE。配置应用程序或重新构造,业务传输需求从光盘读取,可行的是这样做的,横向延伸的类型可以是能进一步延伸,在必要时,从盘连接多个块只读。

3。利用存储

这听起来很基本的东西,也很直接,但往往忽视了,你至少应该确认这些设置:

innodb_buffer_pool_sizekey_buffer_size(MyISAM索引缓存)query_cache_size变量 - 需要小心thread_cache&table_cacheinnodb_log_file_size&innodb_log_buffer_sizesort_buffer_size,join_buffer_size,read_buffer_size,read_rnd_buffer_sizetmp_table_size&max_heap_table_size使用大型SMP时

4。RAID磁盘读取

这里是你的数据库?我不知道你,请找出。您正在使用RAID 5是?这样的表现是一个巨大的障碍,但。INSERT和UPDATE RAID5的运行速度很慢,如果你失去了一个硬盘驱动器,RAID 5是在重建几乎无能为力。RAID 5是太慢了,那么它应该是什么,而不是它?RAID 10镜像和分段做,它可以充分利用你的所有硬盘的服务器或机箱。即使你的内存可以容纳整个数据库,还需要大量的硬盘的读取操作。为什么?因为诸如排序操作需要重新安排行列,并加入到组,等等,太多,以及添加事务日志,等等。这是所有的磁盘I / O操作。

5。关键参数调整

此外,一些额外的参数可以用来提高性能:

的innodb_flush_log_at_trx_commit = 2

它可以大大提高插入和更新的速度,只是在时间来清除有点懒InnoDB日志缓冲区。你可以做更多的研究,但在大多数情况下,强烈建议。

innodb_file_per_table

InnoDB的发展,如Oracle,存储使用的表空间模式。显然内核开发者并不完美,因为使用一个单独的表空间的默认设置将是一个性能瓶颈。此参数设置可以帮助创建InnoDB表空间和数据文件的每个表,做一样的MyISAM。

原文地址:HTTP:// SQL。dzone。COM /新闻/ 5-方式升压MySQL的可扩展性

本文链接:教你五招,快速提升MySQL可扩展性

友情链接:

大悲咒经文 佛经 观音心经