• binlog 相关参数


    <pre name="code" class="sql">mysql>  show variables like '%cache_size%';
    +----------------------------+----------------------+
    | Variable_name              | Value                |
    +----------------------------+----------------------+
    | binlog_cache_size          | 131072               |
    | binlog_stmt_cache_size     | 32768                |
    | host_cache_size            | 654                  |
    | innodb_ft_cache_size       | 8000000              |
    | innodb_ft_total_cache_size | 640000000            |
    | max_binlog_cache_size      | 18446744073709547520 |
    | max_binlog_stmt_cache_size | 18446744073709547520 |
    | metadata_locks_cache_size  | 1024                 |
    | query_cache_size           | 1048576              |
    | thread_cache_size          | 18                   |
    +----------------------------+----------------------+
    
    
    
    max_binlog_cache_size :(默认4GB, 也是最大值) 用于限制用于 cache 多个语句事务的总量。
    
    如果一个事务大于这个值,它会失败回滚。
    
    
    Max_binlog_cache_size: 默认值是18446744073709547520,这个值很大,够我们使用的了。此参数和binlog_cache_size相对应,代表binlog所能使用的cache最大使用大小。如果系统中事务过多,而此参数值设置有小,则会
    
    报错。
    
    
    The Binlog_cache_use status variable shows the number of transactions that used this buffer (and possibly a temporary file) for storing statements. 
    
    The Binlog_cache_disk_use status variable shows how many of those transactions actually had to use a temporary file. 
    These two variables can be used for tuning binlog_cache_size to a large enough value that avoids the use of temporary files.
    
    max_binlog_size = 512M
    binlog_cache_size = 128K
    
    
    Binlog_cache_use 显示 事务的数量被用于这个buffer(也可能是临时文件)用于存储语句。
    
    
    
    Binlog_cache_disk_use 显示多少的事务数 必须得使用临时文件
    
    
    这两个变量能用于调整binlog_cache_size 到一个足够大的值来避免使用临时文件
    
    
    max_binlog_size = 512M
    
    The server also creates a new binary log file automatically after the current log's size reaches max_binlog_size. A binary log file may become larger than max_binlog_size if you are using large 
    
    transactions because a transaction is written to the file in one piece, never split between files.
    
    
    server 也会自动的创建一个新的binary log 文件,在当前的log 大小达到max_binlog_size 的时候, 一个binary log 文件可能会大于max_binlog_size 如果你要使用大的
    
    事务 因为一个事务 会被写入到一个文件中,不会分隔到几个文件。
    
    
    参数:binlog_cache_size 就是满足以上两点的:一个事务,在没有提交(uncommitted)的时候,产生的日志,记录到Cache中;等到事务提交(committed)需要提交的时候,则把日志持久化到磁盘
    
    
    当一个thread 开始处理事务,它分配一个binlog_cache_size 的buffer 来buffer 语句。
    
    如果语句的大小大于这个值, thread 打开一个临时的文件来存储transaction,临时文件被删除在thread 结束后。
    
    
    mysql>  show status like 'binlog_%';
    +----------------------------+---------+
    | Variable_name              | Value   |
    +----------------------------+---------+
    | Binlog_cache_disk_use      | 445     |
    | Binlog_cache_use           | 9019263 |
    
    
    
    可以看到用到了临时文件,需要加大binlog_cache_size
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    


    
    
    
                                        
    
  • 相关阅读:
    Another kind of Fibonacci(hdu3306)
    Robot(hdu5673)
    The Luckiest number(hdu2462)
    Description has only two Sentences(hdu3307)
    codeforces(Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) )(C,D)
    Abelian Period
    Brute-force Algorithm(hdu3221)
    1046:Square Number
    Harry Potter and the Hide Story(hdu3988)
    C. Journey
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351498.html
Copyright © 2020-2023  润新知