mysql性能调优怎么样 mysql性能调优参数( 七 )


这个特性从MySQL 5.6才开始支持 。
13.INNODB_ADAPTIVE_HASH_INDEX_PARTS
如果你运行着一个大量SELECT查询的MySQL服务器(并且已经尽可能优化),那么自适应哈希索引将下你的下一个瓶颈 。自适应哈希索引是InnoDB内部维护的动态索引,可以提高最常用的查询模式的性能 。这个特性可以重启服务器关闭 , 不过默认下在mysql的所有版本开启 。
这个技术非常复杂,在大多数情况下它会对大多数类型的查询直到加速的作用 。不过,当你有太多的查询往数据库,在某一个点上它会花过多的时间等待AHI锁和闩锁 。
如果你的是MySQL 5.7,没有这个问题 – innodb_adaptive_hash_index_parts默认设置为8,所以自适应哈希索引被切割为8个分区,因为不存在全局互斥 。
不过在mysql 5.7前的版本,没有AHI分区数量的控制 。换句话说,有一个全局互斥锁来保护AHI,可能导致你的select查询经常撞墙 。
所以如果你运行的是5.1或5.6,并且有大量的select查询 , 最简单的方案就是切换成同一版本的Percona Server来激活AHI分区 。
14.QUERY_CACHE_TYPE
如果人认为查询缓存效果很好,肯定应该使用它 。好吧,有时候是有用的 。不过这个只在你在低负载时有用,特别是在低负载下大多数是读?。×啃椿蛘呙挥?。
如果是那样的情况,设置query_cache_type=ON和query_cache_size=256M就好了 。不过记住不能把256M设置更高的值了 , 否则会由于查询缓存失效时,导致引起严重的服务器停顿 。
如果你的MySQL服务器高负载动作,建议设置query_cache_size=0和query_cache_type=OFF,并重启服务器生效 。那样Mysql就会停止在所有的查询使用查询缓存互斥锁 。
15.TABLE_OPEN_CACHE_INSTANCES
从MySQL 5.6.6开始,表缓存能分割到多个分区 。
表缓存用来存放目前已打开表的列表,当每一个表打开或关闭互斥体就被锁定 – 即使这是一个隐式临时表 。使用多个分区绝对减少了潜在的争用 。
从MySQL 5.7.8开始 , table_open_cache_instances=16是默认的配置 。
欢迎做Java的工程师朋友们私信我资料免费获取免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)
其中覆盖了互联网的方方面面,期间碰到各种产品各种场景下的各种问题,很值得大家借鉴和学习,扩展自己的技术广度和知识面 。
关于mysql性能调优怎么样和mysql性能调优参数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

推荐阅读