Following the discussions on {T223151} and given all the tests we have done with a non partitioned slave on s1 (enwiki) and s5, they have all been successful and we've not noticed any regression on serving queries for the following groups:
```
contributions
watchlist
recentchanges
logpager
recentchangeslinked
```
I would like to move forward and start removing the partitions from the `revision` table on those wikis where it is indeed partitioned which are:
s1: `enwiki`
s2: `bgwiki cswiki enwikiquote enwiktionary fiwiki itwiki nlwiki nowiki plwiki ptwiki svwiki thwiki twiki zhwiki`
s4: `commonswiki`
s5: `dewiki`
s6: `frwiki jawiki ruwiki`
s7: `arwiki cawiki eswiki fawiki hewiki huwiki kowiki metawiki rowiki ukwiki viwiki`
s8: `wikidatawiki`
I think we should start very slowly and keep monitoring things.
My proposal would be to start with `dewiki`, as it is big enough to see regressions (again, nothing has showed up during the tests done at T223151) and also it would only affect one wiki.
The PK for those slaves would need to change from:
```
PRIMARY KEY (`rev_id`,`rev_user`),
```
To:
```
PRIMARY KEY (`rev_id`),
```
The indexes would also need to change from:
```
KEY `rev_timestamp` (`rev_timestamp`,`rev_id`),
KEY `page_timestamp` (`rev_page`,`rev_timestamp`,`rev_id`),
KEY `user_timestamp` (`rev_user`,`rev_timestamp`,`rev_id`),
KEY `usertext_timestamp` (`rev_user_text`,`rev_timestamp`,`rev_id`),
KEY `page_user_timestamp` (`rev_page`,`rev_user`,`rev_timestamp`,`rev_id`),
KEY `rev_page_id` (`rev_page`,`rev_id`)
```
To:
```
KEY `rev_timestamp` (`rev_timestamp`),
KEY `page_timestamp` (`rev_page`,`rev_timestamp`),
KEY `user_timestamp` (`rev_user`,`rev_timestamp`),
KEY `usertext_timestamp` (`rev_user_text`,`rev_timestamp`),
KEY `page_user_timestamp` (`rev_page`,`rev_user`,`rev_timestamp`),
KEY `rev_page_id` (`rev_page`,`rev_id`)
```
The alter to run would be:
```
alter table revision remove partitioning;
alter table revision drop primary key, add primary key (rev_id), drop index if exists rev_timestamp, drop index if exists page_timestamp, drop index if exists user_timestamp, drop index if exists usertext_timestamp, drop index if exists page_user_timestamp, drop index if exists rev_page_id;
alter table revision add index if not exists `rev_timestamp` (`rev_timestamp`), add index if not exists `page_timestamp` (`rev_page`,`rev_timestamp`), add index if not exists `user_timestamp` (`rev_user`,`rev_timestamp`), add index if not exists `usertext_timestamp` (`rev_user_text`,`rev_timestamp`), add index if not exists `page_user_timestamp` (`rev_page`,`rev_user`,`rev_timestamp`), add index if not exists `rev_page_id` (`rev_page`,`rev_id`);
```
Progress:
s1: enwiki
** [x] db1099:3311
** [x] db1105:3311
** [x] db2085:3311
** [x] db2088:3311
s2: bgwiki cswiki enwikiquote enwiktionary fiwiki itwiki nlwiki nowiki plwiki ptwiki svwiki thwiki trwiki zhwiki
** [x] db1103:3312
** [x] db1105:3312
** [x] db2088:3312
** [x] db2091:3312
s4: commonswiki
** [x] db1097:3314
** [x] db1103:3314
** [x] db2084:3314
** [x] db2091:3314
s5: dewiki
** [x] db1096:3315
** [x] db1097:3315
** [x] db2084:3315
** [x] db2089:3315
s6: frwiki jawiki ruwiki
** [x] db1096:3316
** [x] db1098:3316
** [x] db2087:3316
** [x] db2089:3316
s7: arwiki cawiki eswiki fawiki hewiki huwiki kowiki metawiki rowiki ukwiki viwiki
** [x] db1098:3317
** [x] db1101:3317
** [x] db2086:3317
** [x] db2087:3317
s8: wikidatawiki
** [] db1099:3318
** [] db1101:3318
** [x] db2085:3318
** [] db2086:3318
[] Comment partitioning on *-pager.sql files