加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

超具体的MySQL数据库参数优化,都总结在这里了

发布时间:2019-07-23 14:36:28 所属栏目:编程 来源:波波说运维
导读:概述 最近在对各个体系的mysql做一些参数上的优化,也开了慢查询,筹备后头针对特定sql再进一步优化。下面首要先容一下一些优化的参数。 1、优化前mysql设置 可以看到根基上是没怎么做优化的。 2、优化后的设置 以下是优化后的一些参数。 3、优化参数声名
副问题[/!--empirenews.page--]

 概述

最近在对各个体系的mysql做一些参数上的优化,也开了慢查询,筹备后头针对特定sql再进一步优化。下面首要先容一下一些优化的参数。

1、优化前mysql设置

可以看到根基上是没怎么做优化的。

超具体的mysql数据库参数优化,都总结在这里了

2、优化后的设置

以下是优化后的一些参数。

超具体的mysql数据库参数优化,都总结在这里了 超具体的mysql数据库参数优化,都总结在这里了

3、优化参数声名:

  1. #基本设置 
  2. datadir=/data/datafile 
  3. socket=/var/lib/mysql/mysql.sock 
  4. log-error=/data/log/mysqld.log 
  5. pid-file=/var/run/mysqld/mysqld.pid 
  6. character_set_server=utf8 
  7. #应承恣意IP会见 
  8. bind-address = 0.0.0.0 
  9. #是否支持标记链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目次,为0不开启 
  10. #symbolic-links=0 
  11. #支持巨细写 
  12. lower_case_table_names=1 
  13. #二进制设置 
  14. server-id = 1 
  15. log-bin = /data/log/mysql-bin.log 
  16. log-bin-index =/data/log/binlog.index 
  17. log_bin_trust_function_creators=1 
  18. expire_logs_days=7 
  19. #sql_mode界说了mysql应该支持的sql语法,数据校验等 
  20. #mysql5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。  
  21. #ANSI模式:宽松模式,对插入数据举办校验,假如不切合界说范例或长度,对数据范例调解或截断生涯,报warning告诫。  
  22. #TRADITIONAL模式:严酷模式,当向mysql数据库插入数据时,举办数据的严酷校验,担保错误数据不能插入,报error错误。用于事物时,会举办事物的回滚。  
  23. #STRICT_TRANS_TABLES模式:严酷模式,举办数据的严酷校验,错误数据不能插入,报error错误。 
  24. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
  25. #InnoDB存储数据字典、内部数据布局的缓冲池,16MB已经足够大了。 
  26. innodb_additional_mem_pool_size = 16M 
  27. #InnoDB用于缓存数据、索引、锁、插入缓冲、数据字典等 
  28. #假如是专用的DB处事器,且以InnoDB引擎为主的场景,凡是可配置物理内存的60% 
  29. #假如长短专用DB处事器,可以先实行配置成内存的1/4 
  30. innodb_buffer_pool_size = 4G 
  31. #InnoDB的log buffer,凡是配置为 64MB 就足够了 
  32. innodb_log_buffer_size = 64M 
  33. #InnoDB redo log巨细,凡是配置256MB 就足够了 
  34. innodb_log_file_size = 256M 
  35. #InnoDB redo log文件组,凡是配置为 2 就足够了 
  36. innodb_log_files_in_group = 2 
  37. #共享表空间:某一个数据库的全部的表数据,索引文件所有放在一个文件中,默认这个共享表空间的文件路径在data目次下。 默认的文件名为:ibdata1 初始化为10M。 
  38. #独有表空间:每一个表都将会天生以独立的文件方法来举办存储,每一个表都有一个.frm表描写文件,尚有一个.ibd文件。 个中这个文件包罗了单唯一个表的数据内容以及索引内容,默认环境下它的存储位置也是在表的位置之中。 
  39. #配置参数为1启用InnoDB的独立表空间模式,便于打点 
  40. innodb_file_per_table = 1 
  41. #InnoDB共享表空间初始化巨细,默认是 10MB,改成 1GB,而且自动扩展 
  42. innodb_data_file_path = ibdata1:1G:autoextend 
  43. #配置姑且表空间最大4G 
  44. innodb_temp_data_file_path=ibtmp1:500M:autoextend:max:4096M 
  45. #启用InnoDB的status file,便于打点员查察以及监控 
  46. innodb_status_file = 1 
  47. #当配置为0,该模式速率最快,但不太安详,mysqld历程的瓦解会导致上一秒钟全部事宜数据的丢失。 
  48. #当配置为1,该模式是最安详的,但也是最慢的一种方法。在mysqld 处事瓦解可能处事器主机crash的环境下,binary log 只有也许丢失最多一个语句可能一个事宜。 
  49. #当配置为2,该模式速率较快,也比0安详,只有在操纵体系瓦解可能体系断电的环境下,上一秒钟全部事宜数据才也许丢失。 
  50. innodb_flush_log_at_trx_commit = 1 
  51. #配置事宜断绝级别为 READ-COMMITED,进步事宜服从,凡是都满意事宜同等性要求 
  52. #transaction_isolation = READ-COMMITTED  
  53. #max_connections:针对全部的账号全部的客户端并行毗连到MYSQL处事的最大并行毗连数。简朴说是指MYSQL处事可以或许同时接管的最大并行毗连数。 
  54. #max_user_connections : 针对某一个账号的全部客户端并行毗连到MYSQL处事的最大并行毗连数。简朴说是指统一个账号可以或许同时毗连到mysql处事的最大毗连数。配置为0暗示不限定。 
  55. #max_connect_errors:针对某一个IP主机毗连间断与mysql处事毗连的次数,假如高出这个值,这个IP主机将会阻止从这个IP主机发送出去的毗连哀求。碰着这种环境,需执行flush hosts。 
  56. #执行flush host可能 mysqladmin flush-hosts,其目标是为了清空host cache里的信息。可恰当加大,防备频仍毗连错误后,前端host被mysql拒绝掉 
  57. #在 show global 里有个体系状态Max_used_connections,它是指从这次mysql处事启动到此刻,统一时候并行毗连数的最大值。它不是指当前的毗连环境,而是一个较量值。假如在已往某一个时候,MYSQL处事同时有10 
  58. 00个哀求毗连过来,而之后再也没有呈现这么大的并发哀求时,则Max_used_connections=1000.请留意与show variables 里的max_user_connections的区别。#Max_used_connections / max_connections * 100% ≈ 85% 
  59. max_connections=600 
  60. max_connect_errors=1000 
  61. max_user_connections=400 
  62. #配置姑且表最大值,这是每次毗连城市分派,不宜配置过大 max_heap_table_size 和 tmp_table_size 要配置一样大 
  63. max_heap_table_size = 100M 
  64. tmp_table_size = 100M 
  65. #每个毗连城市分派的一些排序、毗连等缓冲,一样平常配置为 2MB 就足够了 
  66. sort_buffer_size = 2M 
  67. join_buffer_size = 2M 
  68. read_buffer_size = 2M 
  69. read_rnd_buffer_size = 2M 
  70. #提议封锁query cache,有些时辰对机能反而是一种侵害 
  71. query_cache_size = 0 
  72. #假如是以InnoDB引擎为主的DB,专用于MyISAM引擎的 key_buffer_size 可以配置较小,8MB 已足够 
  73. #假如是以MyISAM引擎为主,可配置较大,但不能高出4G 
  74. key_buffer_size = 8M 
  75. #配置毗连超时阀值,假如前端措施回收短毗连,提议收缩这2个值,假如前端措施回收长毗连,可直接注释掉这两个选项,是用默认设置(8小时) 
  76. #interactive_timeout = 120 
  77. #wait_timeout = 120 
  78. #InnoDB行使靠山线程处理赏罚数据页上读写I/0哀求的数目,应承值的范畴是1-64 
  79. #假设CPU是2颗4核的,且数据库读操纵比写操纵多,可配置 
  80. #innodb_read_io_threads=5 
  81. #innodb_write_io_threads=3 
  82. #通过show engine innodb status的FILE I/O选项可查察到线程分派 
  83. #配置慢查询阀值,单元为秒 
  84. long_query_time = 120 
  85. slow_query_log=1 #开启mysql慢sql的日记 
  86. log_output=table,File #日记输出会写表,也会写日记文件,为了便于措施去统计,以是最好写表 
  87. slow_query_log_file=/data/log/slow.log 
  88. ##针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数 
  89. #log_throttle_queries_not_using_indexes = 5 
  90. ##作为从库时见效,从库复制中怎样有慢sql也将被记录 
  91. #log_slow_slave_statements = 1 
  92. ##搜查未行使到索引的sql 
  93. #log_queries_not_using_indexes = 1 
  94. #快速预热缓冲池 
  95. innodb_buffer_pool_dump_at_shutdown=1 
  96. innodb_buffer_pool_load_at_startup=1 
  97. #打印deadlock日记 
  98. innodb_print_all_deadlocks=1  

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读