https://bugzilla.wikimedia.org/show_bug.cgi?id=31197

--- Comment #9 from Domas Mituzas <domas.mitu...@gmail.com> 2011-10-05 15:37:40 
UTC ---
EXPLAIN won't provide enough justice.

The problem is that currently "show me 50 edits from namespace X" can read 50
database rows, or it can read all of the user contributions and return 0. 

It is not possible to index this without denormalizing the dataset
(page_namespace has to sit together with all revisions). 

e.g. 10 edits for Rambot reads:


mysql> show status like '%handler_read%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| Handler_read_first    | 0     | 
| Handler_read_key      | 3     | 
| Handler_read_next     | 9     | 


now, 10 edits for Rambot, verifying page namespace (e.g. 10):

mysql>  select * from revision join page on page_id=rev_page where
rev_user_text='Rambot' and page_namespace=10 limit 10;
Empty set (1 min 53.16 sec)

mysql> show status like '%handler_read%';
+-----------------------+--------+
| Variable_name         | Value  |
+-----------------------+--------+
| Handler_read_first    | 0      | 
| Handler_read_key      | 138423 | 
| Handler_read_next     | 138448 | 

Fixing this allows additional revision index, and denormalization which
prohibits from cross namespace renames. 

Or we can allow multiple-minute queries. As a rule, users with large histories
get way more scripted contributions checks :-)

-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
Wikibugs-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to