zoukankan      html  css  js  c++  java
  • mysql服务器和配置优化

    一、存储引擎

    mysql中有多种存储引擎,一般常见的有三种:

      MyIsam InnoDB Memory
    用途 快读 完整的事务支持 内存数据
    全表锁定 多种隔离级别的行锁 全表锁定
    持久性 基于表恢复 基于日志的恢复 无磁盘I/O,无可持久性
    事务特性 不支持 支持

    不支持

    支持索引类型 B-tree/FullText/R-tree Hash/B-tree Hash/B-tree

        

      

      

      

      

      

      

      

    通常的观点是MyISAM 注重性能,InnoDB注重事务,所以一边使用MyISAM类的表做非事务型的业务。

    这种观点是由于早期InnoDB引擎还不成熟,而事实上并不是这样的。mysql在高并发下的性能瓶颈很明显,主要原因就是锁定机制导致的堵塞。而InnoDB在锁定机制上采用了行级锁,不同于MyISAM的表级锁,行级锁在锁定上带来的消耗大于表级锁,但是在系统并发访问较高时,InnoDB整体的性能高于MyISAM。同时InnoDB的索引不仅缓存索引本身,也缓存数据,说以InnoDB需要更大的内存,在现在来说内存很廉价。而且在MYSQL8.0 中 MyISAM已经不存在了。

    二、mysql服务器调整优化

    关闭不必要的二进制日志和慢查询日志,仅在内存足够或开发调试时打开。使用下来语句查看是否打开:

    show variables like '%slow%';

    使用下列语句查看慢查询条数:

    show global status like '%slow%';

    慢查询会消耗过度消耗CPU,可以间歇性打开慢查询日志来定位新能瓶颈。

    适度使用query cache

    增加mysql允许的最大连接数。查看mysql最大连接数:

    show variables like 'max_connections';

    对于InnoDB存储引擎,需要安装服务器内存来设置innodb_buffer_pool_size一般是操作系统内存的70%-80%最佳。

    定期的执行optimize table tableName 进行碎片整理 ,或者在大量删除后进行。

    对数据库进行分区,分表操作。

    使用Nosql辅助,如:Memcached,redis。

    mysql最大连接数修改方法:

    方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100   修改为 max_connections=(数字) 服务里重起MYSQL即可

    方法二:set GLOBAL max_connections=200

    mysql修改innodb_buffer_pool_size

    进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf 查找  innodb_buffer_pool_size  这一项设置 修改为 例如:   innodb_buffer_pool_size = 6G

    增加mysql配置中的buffer和cache的数值

    产考文章:

    http://www.jb51.net/article/48082.htm

    http://blog.csdn.net/cenfei78325747/article/details/7861454

  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/phpshen/p/6165339.html
Copyright © 2011-2022 走看看