设为首页 收藏本站
查看: 1919|回复: 0

[经验分享] centos7-mysql-cnf配置文件优化

[复制链接]

尚未签到

发表于 2018-10-10 07:13:02 | 显示全部楼层 |阅读模式
  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地址碎金部分事物的危险前提下,可以设置0  2.
  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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-619692-1-1.html 上篇帖子: Mysql高可用性keepalived+Mysql双主 下篇帖子: centos7-mysql-分表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表