vivion27 发表于 2018-10-10 07:13:02

centos7-mysql-cnf配置文件优化

  mysql优化最常见的就是my.cnf文件配置优化
  限制线程,访问等等
  max_connections = 151
  每个版本的限制不一样,限制最多连接数,并发访问多,可以适当调高
  back_log = 数值
  如果并发量大,很多命令没法及时解决,使用这个参数就可以让后来的命令排队,存放在堆栈中
  show full processlist   使用这个命令可以查看有多少命令在等待中,如果很多这时候就需要增加 back 或者connections的值
  wait_timeout = 60 是一个非交互式等待的秒数,省的占用资源
  interactive_time = 200 交互式链接,如果长时间不操作自动断开,给其他资源让路
  key_buffer_size = 256M
  索引缓冲区大小,会缓存索引,省的去磁盘读取节省IO资源,但是会占用内存空间
  show status like 'key_read%';查看索引请求,多少是在缓冲区多少没有.
  query_cache_size = 256M
  SQL查询语句缓冲,需要两条语句一模一样才能匹配
  show status like 'Qcache%' 查看各种query_cache_size设置信息
  Qcache_free_blocks    如果数值过大则是碎片过多需要整理
  Qcache_free_memory   剩余内存大小
  Qcache_hits       多少次命中缓存,
  Qcache_inserts    多少次未命中
  Qcache_lowmem_prunes    因为内存不足而不记录的语句
  show variables like 'query_cache%'
  query_cache_ limit   超过多大的查询不缓存,看情况
  query_cache_ min_res_unit块的大小,大了提高速度,小了节省空间

  query_cache_>  query_cache_ type = 0/1/2 缓存类型,0等于关闭不缓存   1会缓存所有结果   2 通过sql_cache 指定需要缓存的查询
  max_connect_errors = 10
  密码错误次数限制,可以防止暴力破解,如果输错多少次,以后再也不响应,除非重启mysql或者flush hosts清空.
  sort_buffer_size = 2M
  mysql是通过线程来处理问题,主线程,分配给一个工作线程,每个线程会占用一定内存资源,如果这个值过高,在碰巧遇到高并发,就会耗尽内存,看情况而定
  max_allowed_packet = 32M
  mysql会根据这个来限制接受的数据包大小,如果大了则失败
  join_buffer_size=2M
  表关联缓存大小,和sort_buffer_size = 2M一样,对每个线程链接分配.
  thread_cache_size = 300
  缓存的工作线程, 主线程有事情了直接从缓存线程中提取分配,如果自动生成在结束时会自动销毁.
  -----------------------------------------------------------------------------
  innodb配置
  innodb_buffer_pool_size = 2048M
  类似key_buffer_size lnnodb使用这个来确定缓冲数据和索引的大小
  innodb_flush_log_at_trx_commit = 0/1/2
  0每秒钟将logbuffer中的数据写入flush
  1美妙和每次事物提交将log buffer中的数据写入flush
  2每次每秒钟完成一次flush操作
  这条对速度的影响非常大,如果在允许mysql地址碎金部分事物的危险前提下,可以设置02.
  innodb_thread_concurrency = 0
  设置innodb的并发量,0不限制   一般CPU核心数的2倍,一般为8
  innodb_log_buffer_size = 32M
  缓存日志大小,事物很大,需要增加缓存
  innodb_log_file_size = 50M
  确定数据日志文件的大小
  innodb_log_files_in_group =3
  mysql 可以将日志文件写到多个文件,推荐是3
  read_buffer_size = 1M
  为每个链接单独分配内存,可以增加性能,但是消耗内存
  read_rnd_buffer_size = 16M
  随手记读缓冲区大小,如果需要排序时,会分配一个随机读缓冲区进行排序查询,避免磁盘搜索占用IO提高查询速度,如果数据大可以适当提高.
  bulk_insert_buffer_size = 64M
  批量插入缓存大小可以有效提高效率,默认8M
  binary log
  log-bin=/*****mysql-bin
  binlog_cache_size
  存储二进制日志文件缓存
  max_binlog_cache_size = 8M 使用的cache内存大小
  max_binlog_size = 512M 日志文件大小,如果达到则会创建新的binlog日志
  expire_logs_days = 7定期清理过期日志
  mysqladmin flush-logs 重新生成新的日志文件.

页: [1]
查看完整版本: centos7-mysql-cnf配置文件优化