Mysql数据库性能调优

4 篇文章 0 订阅

1innodb_open_files = 500

# 限制Innodb能打开的表的数据,如果库里的表特别多的情况,请增加这个。这个值默认是300

2wait_timeout =28800  8小时)

3interactive_timeout= 28800 8小时)

    # 服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。默认值:28800秒(8小时)

4innodb_lock_wait_timeout = 120

# InnoDB事务在被回滚之前可以等待一个锁定的超时秒数。InnoDB在它自己的锁定表中自动检测事务死锁并且回滚事务。InnoDBLOCK TABLES语句注意到锁定设置。默认值是50

5innodb_max_dirty_pages_pct = 90

# innodb主线程刷新缓存池中的数据,使脏数据比例小于90%

6innodb_log_files_in_group = 3

# 为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3

7innodb_log_file_size = 32M

#此参数确定数据日志文件的大小,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间

8innodb_log_buffer_size = 2M

# 此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL开发人员建议设置为18M之间

9innodb_thread_concurrency= 0

    # 这里推荐设置为0,更好去发挥CPU多核处理能力,提高并发量

10innodb_write_io_threads = 4

innodb_read_io_threads = 4

# innodb使用后台线程处理数据页上的读写I/O(输入输出)请求,根据你的 CPU核数来更改,默认是4

# :这两个参数不支持动态改变,需要把该参数加入到my.cnf里,修改完后重启MySQL服务,允许值的       范围从 1-64

11innodb_buffer_pool_size = 64M

# InnoDB使用一个缓冲池来保存索引和原始数据, 不像MyISAM.

# 这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少.

# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的80%

# 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸.

# 注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,

# 所以不要设置的太高

13lower_case_table_names = 1          #不区分大小写

14expire_logs_days = 30

# 超过30天的binlog删除

15key_buffer_size= 4M

    # 指定用于索引的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。对于内存在4GB左右的服务器该参数可设置为384M512M

16query_cache_limit = 2M

# 指定单个查询能够使用的缓冲区大小,默认1M

17thread_cache_size = 8

# 这个值(默认8)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,

# 如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,

# 增加这个值可以改善系统性能.通过比较ConnectionsThreads_created状态的变量,可以看到这个变量的作用。(–>表示要调整的值)

# 根据物理内存设置规则如下:

#  1G  —> 8    # 2G —> 16    # 3G  —> 32    # 大于3G  —> 64

18binlog_cache_size = 1M

# 一个事务,在没有提交的时候,产生的日志,记录到Cache中;等到事务提交需要提交的时候,则把日志持久化到磁盘。默认binlog_cache_size大小32K

19table_open_cache = 128

# MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值64

# 假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件描述符数目)

# 当把table_open_cache设置为很大时,如果系统处理不了那么多文件描述符,那么就会出现客户端失效,连接不上

20max_connect_errors = 6000

# 对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST

21max_connections = 1000   一般将该参数设置为500-2000

# MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量

22back_log = 600

# MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,

# 然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。

# 如果期望在一个短时间内有很多连接,你需要增加它。也就是说,如果MySQL的连接数据达到max_connections时,新来的请求将会被存在堆栈中,

# 以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。

# 另外,这值(back_log)限于您的操作系统对到来的TCP/IP连接的侦听队列的大小。

# 你的操作系统在这个队列大小上有它自己的限制(可以检查你的OS文档找出这个变量的最大值),试图设定back_log高于你的操作系统的限制将是无效的。

23skip-name-resolve

# 如果这个参数设为OFF,则MySQL服务在检查客户端连接的时候会解析主机名;如果这个参数设为ON,则MySQL服务只会使用IP,在这种情况下,授权表中的Host字段必须是IP地址或localhost。这个参数默认是关闭的

24autocommit = 1   自动提交

25interactive_timeout=3600 

wait_timeout=3600     # mysql在关闭一个交互/非交互的连接之前所要等待的秒数

26slow_query_log = 1    #开启慢查询日志

long_query_time = 6    #超出次设定值的SQL即被记录到慢查询日志

 

slow_query_log_file =/var/log/docker_log/mysql/slow.log

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值