Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 自动增量主键和复制_Mysql_Replication - Fatal编程技术网

Mysql 自动增量主键和复制

Mysql 自动增量主键和复制,mysql,replication,Mysql,Replication,最近,我被告知向所有表添加自动增量主键,因为我们的数据库将被复制(主解决方案)。我们所有的表都有某种主键,但并不是所有的表都是自动递增的 我查阅了有关复制的mysql文档,没有发现任何迹象表明需要这个(自动增量主键)。那么,我错过什么了吗?当要复制数据库时,使用自动增量主键是否更好?自动增量主键绝对不是必需的,但它们是处理整数主键和多主机复制时将要使用的时髦娱乐的更直接、更简单的方法之一。您需要确保每个主机上新插入的行能够被唯一标识。您不希望服务器A在服务器B插入第1行的同时插入第1行,因为当它

最近,我被告知向所有表添加自动增量主键,因为我们的数据库将被复制(主解决方案)。我们所有的表都有某种主键,但并不是所有的表都是自动递增的


我查阅了有关复制的mysql文档,没有发现任何迹象表明需要这个(自动增量主键)。那么,我错过什么了吗?当要复制数据库时,使用自动增量主键是否更好?

自动增量主键绝对不是必需的,但它们是处理整数主键和多主机复制时将要使用的时髦娱乐的更直接、更简单的方法之一。您需要确保每个主机上新插入的行能够被唯一标识。您不希望服务器A在服务器B插入第1行的同时插入第1行,因为当它们相互传输日志时,在尝试插入彼此的行时,它们都会抱怨重复密钥

您需要了解auto_increment_increment和auto_increment_offset配置设置,这将使autoincrement在多主机上正常工作

此外,使用自然主键的表有时(但并非总是)对于多主机复制是完全安全的。这完全取决于插入的频率和性质

也就是说,除非您的员工中有经验丰富的MySQL DBA,否则多主机是最后的选择,也是一个坏主意。我这样说是根据经验,因为我的雇主在生产中有一个三服务器多主机复制循环