`

mysql分布式思维(八)- my优化

阅读更多

一、上一节未完内容:
   1.MyISAM 表锁机制优化建议
      1.1 缩短锁定时间
            a)尽量减少大的复杂的query,将复杂的拆分成多个简单的
     b)尽可能高效的索引
     c)myisam存储引擎表只存放必要的信息,控制字段类型
      1.2分离并行操作
           有参数concurrent_in,1,2三个值
      1.3 读写优先级
           有参数low_priority_updates=1 mysql尽量先处理读请求
    如果写要求高不用设置该参数

   2.Innodb 行锁优化建议
      a)尽可能让所有数据检索都通过索引来完成,避免无索引行锁升级为表锁。
      b)合理设计索引,尽量缩小锁的范围
      c)尽可能较少检索条件,避免间隙锁
      d)尽量控制事务大小,减少锁定资源量和时间长度。
      e)尽可能低级别事务隔离


    3.系统锁定争用情况的查看
      表级锁查看
      show status like 'table%';
        Table_locks_immediate---->产生表级锁定的次数
 Table_locks_waited  ---->表级锁定争用而发生等待的次数

     行级锁查看
         show status like 'innodb_row_lock%';
    5个参数状态分析
     | Innodb_row_lock_current_waits | 0
            | Innodb_row_lock_time          | 50896
            | Innodb_row_lock_time_avg      | 10179
            | Innodb_row_lock_time_max      | 16198
            | Innodb_row_lock_waits         | 5

   create table innodb_monitor(a int)engine=innodb;show innodb status;


二、mysql server 安装优化
    1.选择合适的二进制发行版
        除了官方提供的MySql AB 之外有很多第三方的也很不错。
 第三方比较出名的percona,特别是针对innodb存储引擎做了很多的优化并提供了很多的性能诊断工具

     2.可以通过源码安装
         自己去编译
        ----->进入源码目录执行 ./configure -help ---->可以查看参数可以自己的需要制定参数设置去编译源代码
               ----->icc(interl c compile)编译器  --->多算法和很多方面做了更多的优化

三、mysql 日志设置优化
       1.核心是binlog
            --->相关参数  show variables like '%binlog%';
                       binlog_cache_size(容纳二进制日志sql语句缓存的大小)
                          ---->binlog_cache_use/binlog_cache_disk_use
                       binlog_direct_non_transactional_updates
                       binlog_format
                       binlog_stmt_cache_size
                       innodb_locks_unsafe_for_binlog
                       max_binlog_cache_size
                          ---->能使用的最大的Cache大小
     ---->Multi-statement transaction required more than max_binlog_cache_ssize byte of storage的错误

                       max_binlog_size
                  ----->日志的最大值 一般512M or 1G  大小并非严格
                       max_binlog_stmt_cache_size
                       sync_binlog(把binlog-cache中的数据同步到磁盘的策略)  在master/slave的时候很重要
                  ----->对系统来说至关重要
    ---->0,n

      ---->在复制环境中有8个参数可以配置
             Binlog_Do_DB  设置哪些数据库的Schema 要记录到binlog
      Binlog_Ignore_DB  不要记录到binlog
      Replicate_Do_DB
      Replicate_Ignore_DB
      Replicate_Do_Table
      Replicate_Ignore_Table
      Replicate_Wild_Do_Table支持通配符
      Replicate_Wild_Ignore_Table支持通配符

 2.Slow Query log
      ---->show variables like 'log_slow%';
               show variables like 'long_query%';


四、Query Cache
       1.了解query Cache 的利弊
             ---->hash运算    当有上万的查询来时,cpu损耗不能忽略不计
      ---->Cache失效问题  --->数据修改频繁
      ----->缓存的是ResultSet (一级缓存而不是二级缓存,可能重复缓存数据)
      ----->show variables like '%query_cache%';
           have_query_cache
                  query_cache_limit 该参数要重视
                  query_cache_min_res_unit  该参数要重视
                   query_cache_size
                   query_cache_type
                    query_cache_wlock_invalidate
  ---->show status like 'Qcache%';
      Qcache_free_blocks
                   Qcache_free_memory
 Qcache_hits
 Qcache_inserts
 Qcache_lowmem_prunes
 Qcache_not_cached
 Qcache_queries_in_cache
 Qcache_total_blocks
     通过以上参数可以了解Cache的使用情况


     2.第三方的插件  flushCache 可以把mysql的一级缓存改造成二级缓存

 

 

   五、其它关于server的优化
       1.max_connections;   500到800  只要mysql主机性能允许可以更大
       2.max_user_connections;
       3.net_buffer_length
       4.thread_cache_size  50到100之间
       5.thread_stack
          show variables like 'thread%';
   show status like 'connections';
           show status like '%thread%';
     Thread_Cache_hit = (connections-Thread_created)/connections *100%;
      6.join_buffer_size ,sort_buffer_size 要注意

分享到:
评论

相关推荐

    mysql分布式思维(三)-性能优化之影响mysql性能的因素

    服务器型号解释 博文链接:https://394498036.iteye.com/blog/2289844

    mysql分布式数据库mycat方案

    MySQL分布式数据库MyCAT方案 MySQL分布式数据库MyCAT方案是基于 MySQL 数据库管理系统和 MyCAT 分布式数据库中间件的实践方案。该方案的主要目的是为了解决传统 MySQL 数据库的单点故障和性能瓶颈问题,提高数据库...

    mysql分布式思维(十一)- MySQL Cluster

    MySQL Cluster是一种高可用、高性能的分布式数据库解决方案,它在MySQL服务器的基础上增加了数据的冗余和分布处理能力。本文将深入探讨MySQL Cluster的核心概念、架构、工作原理以及如何使用。 一、MySQL Cluster...

    【分布式事务----LCN】LCN原理及使用方式.docx

    【分布式事务——LCN】LCN 是一种分布式事务解决方案,其设计目的是协调多个局部事务以达到全局一致性。LCN 并不直接创建事务,而是通过协调本地事务来实现分布式的事务管理。它提供了三种模式:LCN 模式、TCC 模式...

    大型分布式购物网站-B2C项目

    6. **分布式数据库**:如MySQL集群,通过主从复制、分区、分片等方式,实现数据的分散存储和读写分离,保证数据的一致性和高可用性。 7. **消息队列**:如RabbitMQ或Kafka,用于异步处理订单创建、支付通知等业务,...

    mysql连接包mysql-connector-java-5.1.27.jar

    6. **连接池**:在实际应用中,为了优化性能和资源利用,通常会使用连接池(如C3P0、HikariCP等),这需要在配置连接池时引入`mysql-connector-java-5.1.27.jar`。 7. **版本兼容性**:`5.1.27`版本的驱动适用于...

    分布式事务演示-distributed-transaction-demo.zip

    5. **数据库自带的分布式事务支持**:许多现代数据库系统,如MySQL的InnoDB引擎,提供了分布式事务的支持,通过诸如XA协议来处理跨库事务。 6. **基于消息队列的事务处理**:例如使用RabbitMQ或Kafka,消息可以作为...

    mysql驱动包 mysql-connector-java-5.1.13-bin.jar

    mysql驱动包 mysql-connector-java-5.1.13-bin.jar 方便快捷获取。。。

    mysql分布式事务实现 MySQL XA pdf

    ### MySQL分布式事务处理与XA协议详解 #### 一、引言 在当今互联网技术高度发展的背景下,分布式系统已经成为处理大规模数据的关键技术之一。而在分布式环境中,确保数据的一致性成为了非常重要的挑战。其中,...

    分布式配置中心-rainbow.zip

    分布式配置中心是现代大型互联网应用中不可或缺的一部分,它主要用于集中管理、存储、更新和监控应用程序的配置信息。Rainbow是一个这样的分布式配置中心,它旨在解决分布式系统中的配置问题,提供统一、高效且可靠...

    mysql-connector-java-8.0.29.zip_数据库

    MySQL-connector-java-8.0.29.zip文件包含了这个特定版本的MySQL Connector/J的所有组件。 在MySQL-connector-java-8.0.29这个版本中,用户可以找到以下关键组件和功能: 1. **JDBC驱动程序**: 这是核心组件,提供...

    分布式键值系统-Tair1

    《分布式键值系统-Tair1详解》 Tair是一款由淘宝研发的分布式键值系统,其设计目标是提供高可用性、高性能的数据存储服务。Tair系统由中心控制节点(config server)和多个服务节点(Data server)构成,旨在解决大...

    高性能分布式事务框架-Hulk.zip

    分布式事务框架Hulk是专为解决大规模分布式系统中事务一致性问题而设计的高性能解决方案。它在复杂的微服务架构中扮演着关键角色,确保业务数据在多个服务之间的一致性。Hulk通过提供灵活的事务处理策略,使得开发者...

    毕业设计-分布式快递系统-公共工程.zip

    【分布式快递系统】是一种在大型企业或互联网行业中广泛采用的技术架构,它旨在处理高并发、大数据量的业务场景。在毕业设计中构建这样的系统,学生可以深入理解分布式系统的原理和实践,提高自己的软件开发能力。这...

    mysql分布式集群安装

    tar -zxvf mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64.tar.gz -C /opt mv /opt/mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64 /opt/mysql chown -R mysql:mysql /opt/mysql mkdir -p /data/MySQL_Cluster...

    mysql-connector-java-5.1.27-bin.jar.zip

    总的来说,`mysql-connector-java-5.1.27-bin.jar.zip`在Hive环境中用于建立与MySQL数据库的连接,允许在Hive SQL查询中操作和管理MySQL中的数据,是大数据生态中连接关系型数据库与分布式计算框架的重要组件。...

    MySQL分布式集群部署文档集合

    本篇将详细讲解基于提供的文件名所涵盖的三个关键知识点:MySQL双机集群、MySQL AB Cluster以及MySQL分布式集群部署。 1. MySQL双机集群: 双机集群,也称为主备复制,是一种常见的高可用性解决方案。在这个配置中...

    分布式架构网上商城-分布式架构网上商城系统-基于Web的分布式架构网上商城系统设计与实现-分布式架构网上商城管理系统java代码

    分布式架构网上商城-分布式架构网上商城系统-分布式架构网上商城系统源码-分布式架构网上商城管理系统-分布式架构网上商城管理系统java代码-分布式架构网上商城系统设计与实现-基于springboot的分布式架构网上商城...

Global site tag (gtag.js) - Google Analytics