每个数据库MySQL的复制类型不同

每个数据库MySQL的复制类型不同,mysql,database,replication,master-slave,Mysql,Database,Replication,Master Slave,我可以为主服务器中的每个数据库提供不同类型的复制吗?? 例如:在同一个MySQL服务器中有两个数据库(DB 1、DB 2)。。我需要提供DB1->基于语句的复制和DB2->基于行的复制 PS:我尝试使用混合复制。。但是我对……有一些问题。。因为有很多触发器(所以我需要基于语句),在某些情况下我需要基于行。数据库级别不能有这样的设置,此设置仅在服务器级别工作,您必须在my.cnf文件中指定 基于语句的复制的优势 写入日志文件的数据更少。当更新或删除影响许多行时,这会导致日志文件所需的存储空间大大

我可以为主服务器中的每个数据库提供不同类型的复制吗?? 例如:在同一个MySQL服务器中有两个数据库(DB 1、DB 2)。。我需要提供DB1->基于语句的复制和DB2->基于行的复制


PS:我尝试使用混合复制。。但是我对……有一些问题。。因为有很多触发器(所以我需要基于语句),在某些情况下我需要基于行。

数据库级别不能有这样的设置,此设置仅在服务器级别工作,您必须在
my.cnf
文件中指定

基于语句的复制的优势

  • 写入日志文件的数据更少。当更新或删除影响许多行时,这会导致日志文件所需的存储空间大大减少。这还意味着可以更快地从备份中获取和恢复数据

  • 日志文件包含进行任何更改的所有语句,因此它们可用于审核数据库

基于行的复制的优势

  • 所有更改都可以复制。这是最安全的复制形式
对于5.1.14之前的MySQL版本,使用基于语句的复制复制诸如CREATE TABLE之类的DDL(数据定义语言)语句,而使用基于行的复制复制DML语句以及GRANT和REVOKE语句

  • 在MySQL 5.1.14及更高版本中,不会复制MySQL数据库。mysql数据库被视为特定于节点的数据库。此数据库中的表不支持基于行的复制。相反,通常会更新此信息的语句(如GRANT、REVOKE和触发器、存储例程(包括存储过程)和视图的操作)都使用基于语句的复制复制到从机
  • 对于诸如CREATETABLE之类的语句。。。选择时,将从表定义生成CREATE语句,并使用基于语句的格式进行复制,而行插入将使用基于行的格式进行复制
  • 该技术与大多数其他数据库管理系统中的技术相同;关于其他系统的知识转移到MySQL
  • 对于以下类型的语句,主机上需要更少的行锁,从而实现更高的并发性:INSERT。。。挑选 插入具有自动增量的语句 使用WHERE子句更新或删除语句,这些语句不使用键或不更改大多数检查行。 对于任何INSERT、UPDATE或DELETE语句,从机上需要的行锁更少
有关更多信息,请参阅: