我已经有一个带有主从复制的系统。
我已经开始使用 Slave 来获取数据。所以,我需要在 Slave 上创建一些额外的索引。[不在 master - 但是被告知 Master 已经有索引]。
我已经阅读了一些帖子,但无法消除我的疑虑。他们说如果您在从属设备上创建主键-外键-唯一索引,则可能会出现问题。但是我不会对奴隶进行任何这些限制。
我只是想在从站上创建非聚集/二级索引。如果我这样做,我会面临任何问题吗?
谢谢你。
您可以在需要时在从站上创建二级索引。创建二级索引没有问题(Non Primary and Non Unique)
。
如果您在从站上创建Primary
和创建Unique
,您的复制可能会duplicate key error
在从站上失败。
举个例子,我testRepl
在 master 上有一个表,上面没有任何索引,并且具有以下结构和数据
show create table testRepl\G
*************************** 1. row ***************************
Table: testRepl
Create Table: CREATE TABLE `testRepl` (
`id` int(11) DEFAULT NULL,
`name` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
SELECT * FROM testRepl;
+------+-------+
| id | name |
+------+-------+
| 1 | Abdul |
| 2 | Jai |
+------+-------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
最初,我们在 slave 上也有相同的表结构和数据,但假设您在 slavePrimary key Index
上创建了一个onid
列,并且有人在 master 上将 id 值插入为 2 插入会成功,但它会在 slave 上失败,因为值 2 已经存在于那里并且该列是主键索引的。所以插入将失败,复制将中断。
归档时间: |
|
查看次数: |
2854 次 |
最近记录: |