首页
学习
活动
专区
圈层
工具
发布

为什么要把MySQL的binlog格式修改为row

我们知道binlog有两种常用的格式,一种是statement(默认),一种是row,很多人都说建议你修改为row格式,那么是为什么呢? 首先我们需要知道它们两个之间有什么不同?...statement格式记录的我们写的SQL语句,而row格式记录的则是实际受影响的数据的变化前后值 这里举两个例子说明一下: 删除 statement记录的是这个删除的语句,例如: delete from...age,而在备库执行这条SQL语句的时候,却使用了索引modified_time 主备同步本身就存在一部分延迟,limit语句很可能受延迟的影响 而row格式记录的是实际受影响的数据是真实删除行的主键id...可重复读级别下会存在间隙锁,会话2必须等会话1释放锁后才能执行,自然也不会出问题 数据恢复 除了避免主备不一致外,使用row格式的binlog对恢复数据也很友好 delete row格式的binlog会把被删掉的行的整行...这时,你直接把insert语句转成delete语句,删除掉这被误插入的一行数据就可以了 update row格式下,binlog里面会记录修改前整行的数据和修改后的整行数据。

5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    查看MySQL查询计划的方法和格式

    查看MySQL的查询计划是分析查询的重要方法,可以通过使用EXPLAIN语句来确认优化器将采取哪种查询计划,是否与你的预期一致。 如何使用EXPLIAN?...用户可以通过sys.session视图里面的conn_id来获得当前查询的连接id。 EXPLAIN的格式。EXPLAIN可以输出四种格式,传统格式,JSON格式,tree格式以及可视化输出。...用户可以根据需要选择适用于自己的格式。 传统格式简单明了,输出是一个表格形式,概要说明查询计划。 ? JSON格式是四种格式里面输出信息最详尽的格式,里面还会包含执行成本信息。 ?...TREE格式是8.0.16版本之后引入的新格式,主要根据查询的各个部分之间的关系和各部分的执行顺序来描述如何查询。 ?...可视化输出,可以通过MySQL Workbench可视化查看MySQL的执行计划。通过点击Workbench的放大镜图标,即可生成可视化的查询计划。 ? ?

    2.6K20

    重磅资料!Github上的PHP资源汇总大全

    将下划线转为命名空间的库 Patch Installer: 使用Composer安装补丁的库 Composer Checker: 一个验证Composer配置的工具 框架 ——Web开发框架 Symfony2 : 由独立组件构成的框架...Zend Framework 2: 同样是由独立组件构成的框架 Laravel 4: 简洁优雅的PHP Web开发框架 Aura PHP: 独立组件的框架 Yii2 : 用于开发大型Web应用的高性能...PHP框架 Nette: 同样是由独立组件构成的框架 PPI Framework 2: 一个交互性的框架 Phalcon: 一个作为C扩展的框架 框架的附加部分 ——其它关于Web开发框架的相关工具...的内容管理框架 Knp RAD Bundle: Symfony2的快速应用程序包(RAD) 框架组件 ——来自Web开发框架的组件 Symfony2 Components: 关于Symphony2的组件 Zend

    2.9K40

    yii2的model数据库配置以及应用(主从数据库配置)

    的配置文件如下: if (YII_ENV == 'dev') { return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql...:host=localhost;dbname=gather'], ] ]; 以上是yii2对数据库配置的应用。...4、model的方法应用 当然yii2还有一些CDB的类用法,createCommend写sql这种我不是很推荐了,model自身会去绑定很多的功能让大家去使用以及理解。...(3)查询方面的建议 至于model的数据查询我就不介绍了,这方面教程肯定挺多的。还有很多朋友会去纠结联表的事情, yii2的model里支持联表,但是从性能考虑,尽量避免联表。...如何避免联表: 如查询文章列表,其中一项为分类名称,通过list取出文章分类的列表,将相对应的分类列表中分类名称, 这样的操作比联表效率要高。

    2.3K41

    yii2开发中19条推荐实践

    // config/web.php 'assetManager'=>[ 'appendTimestamp' => true ], 配置DB 虽然yii2对数据库,尤其是对mysql是很友好的,但是我们还是应该使用稳定高一点的版本...如果可以 mysql5.3.3 + config/db.php 的charset=utf8mb4 配置debug 如果可能,请配置一个类似于xdebug的PHP扩展并且集成到你的IDE中,开发过程中难免遇到不好捕获的...$orders = $customer->orders; } 上面的代码执行了101次查询,如果数据更多那?对于上面的问题我们是这样解决的。...); foreach ($customers as $customer) { // 没有任何的 SQL 执行 $orders = $customer->orders; } 从101次查询减少到...另外在做迁移脚本的时候,如果你的表有前缀,那么在脚本里的写法如下 {{%user}}// discuz_user 时间问题 使用yii2开发mysql类web应用的时候,数据表的时间类字段我们喜欢用时间戳

    4.7K70

    一文读透php到底是不是最好的语言

    这个FI是一个可以做 SQL 查询的东西,2.0是其更新版本。这次发布了一个基本完善的工具包,它不仅可以访问数据库,还能嵌入 HTML 中动态处理数据。...,文档非常全,larave显得更加骚气和编程之美,yii2提供的web组建widget也不错。...02 php zend vm 与java jvm 语言的本质都是编译解释为字节码(有的用解释,有的用编译,编译型语言常驻内存),最终由虚拟机编译成机器码,放在内存由cpu来执行;java有jvm,php...指令由操作码和操作数组成;操作码指明本指令的操作类型,操作数指明操作数本身或者操作数的地址; PHP虚拟机定义指令格式为:操作码 操作数1 操作数2 返回值;其使用结构体_zend_op表示一条指令:...例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而php则需要做大量的修改工作。

    1.4K10

    win2008下如何去搭建属于自己的web服务器(wamp)

    脚本之家小编注:因为图片格式问题,如果图片不能显示请使用chrome浏览器浏览。   ...但是我们可以下载一个wamp集成版(即windows系统下apache、mysql 、php)。   ...还有一点,这里需要mysql,即需要你建一个数据库,当然了,有一个要注意就是wamp中mysql默认的root账户数据库密码是空的。   ...安装了zend loader,其实只是一个dll文件 ,将它放到此 目录下,然后在wamp软件那边勾选zend loader,然后在apache.conf配置文件里面添加几句话,   重新启动所有服务...如图:   类似于这样如下图的配置,我们可以改为allow from all   到这里为止,我们的配置基本上就结束了,正常的话,你的网站可以用来进行测试使用,当然了,网站搭建起来你自己上传一些什么东西那就是你自己来搞定

    3K00

    Mysql优化查询过程中的数据访问

    ARP协议的作用是由IP地址查找对应的MAC地址 RARP协议的作用正好相反,是由MAC地址查找对应的IP地址。 2....重放攻击可以由发起者,也可以由拦截并重发该数据的地方进行。...更复杂的将源地址改为第三方的受害者,最终导致第三方崩溃。 字典攻击是在破解密码或密钥时,逐一尝试用户自定义词典中的可能密码的攻击方式。...Mysql json类型 5.7.8开始,mysql开始支持json数据类型,json数据类型存储时会做格式检验,不满足json格式会报错,json数据类型默认值不允许为空。...zend\_qsort(内部是快速排序算法)对数组排序 调用排序函数zend\_qsort(内部是快速排序算法)对数组排序 排序后,双链表中节点的位置发生变化,因而调整指定指向 遍历数组,分别设置每一个节点的

    3.2K20

    LAMP的搭建与MariaDB的基础使用

    项目地址,http://xcache.lighttpd.net/ 4、Zend Optimizer和Zend Guard Loader Zend Optimizer并非一个opcode加速器,它是由Zend...Technologies为PHP5.2及以前的版本提供的一个免费、闭源的PHP扩展,其能够运行由Zend Guard生成的加密的PHP代码或模糊代码。...数据抽象: 物理层:决定数据的存储格式,即RDBMS在磁盘上如何组织文件; 逻辑层:描述DB存储什么数据,以及数据间存在什么样的关系; 视图层:描述DB中的部分数据; 安装MySQL...#也可以不创建软链接文件,但要把mariadb-10.4.11-linux-x86_64/这个目录的名字改为mysql,这是二进制安装必须要求的,目录名字必须为mysql #修改权限 [root@master...默认为空密码 #注意:mysql用户账号由两部分组成:'USERNAME'@'HOST'; 其中HOST用于限制此用户可通过哪些主机远程连接mysql服务; # 支持使用通配符: #

    2.8K10

    PHP上传文件超过文件最大限制导致无法上传成功

    我使用了XAMPP(Apache + MySQL + PHP + Perl)集成开发包和Zend Studio 10.6作为PHP IDE开发环境,另外关于PHP调试我采用了XDebug,在Zend...Studio10.6中配置Xdebug的PHP调试环境我参考了博文Zend Studio 10.5 与 XDebug 调试| Zend Debugger 说明 Drupal 源代码 (一)一文。      ...tmp_name'], $target)) {”这行代码里面的代码块没有执行,于是查看了超全局变量$_FILES['screenshot']['tmp_name']的值为空,然后我在这行代码前以JSON格式打印出...然后我查询$_FILES['screenshot']['error']为2,上网查询了一下,关于$_FILES超级全局变量的介绍大体如下: PHP编程语言中的常见的$_FILES系统函数用法有: $...— 将上传的文件移动到新位置 说明 bool move_uploaded_file ( string $filename , string $destination ) 本函数检查并确保由 filename

    2.9K30

    PHP Opcache的工作原理

    首先会载入 ngx_http_fastcgi_module 模块,初始化FastCGI执行环境,实现FastCGI协议请求代理 这里要注意:fastcgi的worker进程(cgi进程),是由PHP-FPM...引擎,加载注册的扩展模块 初始化后读取脚本文件,Zend引擎对脚本文件进行词法分析(lex),语法分析(bison),生成语法树 Zend 引擎编译语法树,生成opcode, Zend 引擎执行opcode...当然有,如: OPCache:前身是Zend Optimizer+ ,是 Zend Server 的一个开源组件;官方出品,强力推荐 APC:Alternative PHP Cache 是一个开放自由的...在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2...,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,

    2K21
    领券