Last modified: 2014-06-04 10:36:32 UTC
CREATE TABLE watchlist ( wl_user int(5) unsigned NOT NULL DEFAULT '0', wl_namespace int(11) NOT NULL DEFAULT '0', wl_title varbinary(255) NOT NULL DEFAULT '', wl_notificationtimestamp varbinary(14) DEFAULT NULL, UNIQUE KEY wl_user (wl_user,wl_namespace,wl_title), KEY namespace_title (wl_namespace,wl_title) ) ENGINE=InnoDB DEFAULT CHARSET=binary; InnoDB uses the unique key wl_user as a primary key. Since PK is clustered, secondary indexes contain hidden copies of the PK columns, potentially making them quite large. Bug 66089 adds another secondary index, wl_user_notificationtimestamp, so it's time to consider adding a surrogate primary key wl_id.
This may have some effect on MariaDB watchlist query execution plans such as different use of extended keys or Index Condition Pushdown. Testing is in progress on an enwiki slave.