当前位置: 首页 > wzjs >正文

网站关键词优化多少钱百度平台商家联系方式

网站关键词优化多少钱,百度平台商家联系方式,网络规划设计师真题精讲与押题密卷 pdf,w9y6新域名MySQL 的 binlog_format 是做什么的? binlog_format 是 MySQL 中一个关键配置参数,决定了二进制日志(binlog)记录数据库变更的方式。binlog 就像 MySQL 的“操作日记”,记录了所有增删改、建表等操作,主要…

MySQL 的 binlog_format 是做什么的?

binlog_format 是 MySQL 中一个关键配置参数,决定了二进制日志(binlog)记录数据库变更的方式。binlog 就像 MySQL 的“操作日记”,记录了所有增删改、建表等操作,主要用于主从复制和数据恢复。不同的 binlog_format 会影响日志的格式、复制的可靠性以及性能表现。咱们一步步来搞清楚它到底干啥!


1. 二进制日志(binlog)是啥?

先简单说说 binlog,帮你打个底:

  • 二进制日志:MySQL 的“日记本”,记录数据库的所有变更操作(比如插入一行数据、修改表结构)。日志以二进制格式存储,文件名通常是 mysql-bin.000001mysql-bin.000002 等。
  • 主要用途
    1. 主从复制:主库把 binlog 传给从库,从库重放操作,保持数据一致。
    2. 数据恢复:数据库崩溃时,用 binlog 恢复到某个时间点。
  • 开启方式:在 my.cnf 中配置 log_bin(你的配置已启用 log_bin=mysql-bin)。

binlog_format 就是决定这本“日记”怎么写的规则。


2. binlog_format 的三种类型

MySQL 支持三种 binlog 格式:STATEMENTROWMIXED。每种格式就像不同的记日记方式,咱们用生活化的比喻来理解。

假设你是个厨师,做了道菜(数据库操作),binlog 是你的烹饪记录:

STATEMENT(基于语句)

  • 记录方式:记下做菜的“指令”。比如:“炒一盘西红柿炒蛋,先打两个蛋,切三个西红柿,炒 5 分钟。”
  • 技术解释:记录执行的 SQL 语句本身,例如:
    INSERT INTO users (name) VALUES ('Alice');
    
  • 特点
    • 日志文件小,只记 SQL 语句,不记具体数据。
    • 人类能看懂,适合调试。
  • 比喻:就像记食谱,简单明了。

ROW(基于行)

  • 记录方式:记下每道菜的“结果”。比如:“盘子里多了两勺炒好的西红柿炒蛋,包含两个蛋、三个西红柿。”
  • 技术解释:记录每行数据的实际变更,例如:
    • 插入:具体插入的值(name=Alice)。
    • 更新:更新前后的值(nameBobAlice)。
  • 特点
    • 日志文件大,每行变更都记详细数据。
    • 复制更可靠,不受环境影响。
  • 比喻:就像拍了菜的照片,连细节都记录。

MIXED(混合模式)

  • 记录方式:灵活切换,简单操作记“指令”,复杂操作记“结果”。比如:“炒菜记食谱,切菜记具体切的块。”
  • 技术解释:结合 STATEMENT 和 ROW,自动选择:
    • 普通插入、更新用 STATEMENT。
    • 复杂操作(如随机函数、触发器)用 ROW。
  • 特点
    • 平衡日志大小和可靠性。
    • 默认推荐,减少配置失误。
  • 比喻:像个聪明的记录员,啥合适用啥。

3. binlog_format 的作用

binlog_format 具体影响以下几个方面:

  1. 主从复制的可靠性

    • STATEMENT:从库直接跑主库的 SQL,可能因环境差异(如时间函数、随机数)导致数据不一致。
    • ROW:只关心数据变更,环境无关,复制更稳。
    • MIXED:自动选择,尽量避免不一致。
  2. 日志文件大小

    • STATEMENT:日志小,适合小规模操作。
    • ROW:日志大,适合大数据量或复杂表。
    • MIXED:大小适中。
  3. 性能开销

    • STATEMENT:主库记录快,从库执行 SQL 可能慢。
    • ROW:主库记录稍慢(记每行),从库应用快。
    • MIXED:性能折中。
  4. 数据恢复

    • STATEMENT:恢复可能受 SQL 上下文限制。
    • ROW:精确到每行数据。
    • MIXED:兼顾两者。

4. 三种格式的优缺点对比

格式优点缺点适用场景
STATEMENT日志小,易读,记录快复制可能不一致(如随机函数、触发器)小型系统,简单操作,日志空间有限
ROW复制可靠,环境无关日志大,记录开销高,人类难读复杂系统,高可靠性要求,大数据量
MIXED平衡可靠性和效率,自动选择格式配置复杂,可能仍需手动调整默认推荐,多数生产环境

5. 你的配置:binlog_format=ROW

你的 my.cnf 中设置了:

binlog_format=ROW
  • 意味着

    • 主库记录每行数据的具体变更(插入啥,更新前后是啥)。
    • 主从复制很可靠,即使主从版本不同,也很少出错。
    • 适合你的场景(GTID、主从复制、并行复制),因为 ROW 格式与 GTID 配合更稳定。
  • 注意事项

    • 日志文件可能较大,尤其在频繁更新的表上。
    • 权限操作(如 CREATE USERGRANT)可能不直接记录语句,需额外处理(如用 MIXED)。

6. 怎么选择 binlog_format

选格式得看需求,给你点实际建议:

  • 用 STATEMENT

    • 数据库操作简单(无触发器、复杂函数)。
    • 磁盘空间有限,日志得省着点。
    • 主从环境完全一致(版本、配置相同)。
  • 用 ROW

    • 需要最高可靠性(金融、电商系统)。
    • 主从版本可能不同,或有复杂操作。
    • 磁盘空间充足,不怕日志大。
  • 用 MIXED(默认推荐):

    • 不确定选啥,MIXED 自动判断。
    • 想兼顾性能和可靠性。
    • 生产环境不想踩坑。

建议

  • 你当前用 ROW,适合高可靠性场景。如果日志大小没问题,可以继续用。
  • 如果需要同步权限语句(如 CREATE USER),考虑临时切到 MIXED
    binlog_format=MIXED
    

7. 设置和修改 binlog_format

  • 配置文件

    [mysqld]
    binlog_format=ROW
    
  • 动态修改(无需重启):

    SET GLOBAL binlog_format = 'ROW';
    
    • 注意:只影响新连接,现有连接需断开重连。
    • 确认修改:
      SHOW VARIABLES LIKE 'binlog_format';
      
  • 重启生效

    systemctl restart mysqld
    

总结

binlog_format 是 MySQL 控制二进制日志记录方式的“开关”,影响主从复制和数据恢复:

  • STATEMENT:记 SQL,省空间,可能不稳。
  • ROW:记数据,可靠但占空间。
  • MIXED:聪明切换,适合多数场景。

http://www.dtcms.com/wzjs/11227.html

相关文章:

  • 网站建设综合企业培训员工培训平台
  • 做网站banner如何引流推广
  • 一个企业做网站的目的怎样建网站
  • 电子商务网站建设的步骤一般为建站平台哪个比较权威
  • asp源码下载网站北京官方seo搜索引擎优化推荐
  • 网站建设验收标准青岛网络优化厂家
  • 苏州网站搜索引擎优化深圳百度竞价托管公司
  • 网站开发工程师需要会写什么区别灰色词排名上首页
  • 质量好网站建设商家口碑营销的概念
  • 厦门网站优化建设江北seo
  • 建湖专业做网站一周热点新闻
  • 智能手机网站开发互联网营销培训
  • 海口制作网站软件软文广告图片
  • 网站做系统下载seo快照推广
  • 有没有做水疗偷拍的网站杭州网站推广平台
  • app与网站的区别是什么放单平台大全app
  • 网站静态和动态区别是什么意思电商平台排行榜
  • 广州建外贸网站seo 网站优化推广排名教程
  • 竹子建站是什么企业网站设计的基本内容包括哪些
  • 有哪些建站的公司google搜索引擎
  • wap手机建站平台品牌营销策划方案
  • 广州购物网站建设新产品推广
  • 石家庄新华区网站建设免费涨1000粉丝网站
  • 互联网平台推广方案荥阳seo推广
  • 宁波网站推广业务深圳发布最新通告
  • 如何做盗版小说网站怎样打百度人工客服热线
  • 北京高端网站建设宣传第三方营销策划公司有哪些
  • 高端网站建设企业网站建站前端seo主要优化哪些
  • 闲鱼钓鱼网站怎么做seo关键词排名优化如何
  • 企业展示网站源码视频app推广