From: Aaron Schulz Date: Mon, 9 Jul 2007 19:39:18 +0000 (+0000) Subject: *Index image and oldimage tables by user/timestamp (this should help slow renameuser... X-Git-Tag: 1.31.0-rc.0~52181 X-Git-Url: http://git.cyclocoop.org//%22%22.str_replace%28%27%22%27%2C?a=commitdiff_plain;h=42031d5565102ae3eb69fea22eb71fe5c1ce1e78;p=lhc%2Fweb%2Fwiklou.git *Index image and oldimage tables by user/timestamp (this should help slow renameuser queries on commons at the least) --- diff --git a/maintenance/archives/patch-image-user-index.sql b/maintenance/archives/patch-image-user-index.sql new file mode 100644 index 0000000000..2205d21ba7 --- /dev/null +++ b/maintenance/archives/patch-image-user-index.sql @@ -0,0 +1,8 @@ +-- +-- image-user-index.sql +-- +-- Add user/timestamp index to current image versions +-- + +ALTER TABLE /*$wgDBprefix*/image + ADD INDEX img_usertext_timestamp (img_user_text,img_timestamp); diff --git a/maintenance/archives/patch-oldimage-user-index.sql b/maintenance/archives/patch-oldimage-user-index.sql new file mode 100644 index 0000000000..b0ba3ea762 --- /dev/null +++ b/maintenance/archives/patch-oldimage-user-index.sql @@ -0,0 +1,8 @@ +-- +-- oldimage-user-index.sql +-- +-- Add user/timestamp index to old image versions +-- + +ALTER TABLE /*$wgDBprefix*/oldimage + ADD INDEX oi_usertext_timestamp (oi_user_text,oi_timestamp); diff --git a/maintenance/tables.sql b/maintenance/tables.sql index c9f52eabbc..ed7ecd3668 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -687,9 +687,9 @@ CREATE TABLE /*$wgDBprefix*/image ( PRIMARY KEY img_name (img_name), + INDEX img_usertext_timestamp (img_user_text,img_timestamp), -- Used by Special:Imagelist for sort-by-size INDEX img_size (img_size), - -- Used by Special:Newimages and Special:Imagelist INDEX img_timestamp (img_timestamp) @@ -724,6 +724,7 @@ CREATE TABLE /*$wgDBprefix*/oldimage ( oi_minor_mime varbinary(32) NOT NULL default "unknown", oi_deleted tinyint unsigned NOT NULL default '0', + INDEX oi_usertext_timestamp (oi_user_text,oi_timestamp), INDEX oi_name_timestamp (oi_name,oi_timestamp), -- oi_archive_name truncated to 14 to avoid key length overflow INDEX oi_name_archive_name (oi_name,oi_archive_name(14)) diff --git a/maintenance/updaters.inc b/maintenance/updaters.inc index 585679f37a..8a7c02eeb1 100644 --- a/maintenance/updaters.inc +++ b/maintenance/updaters.inc @@ -263,6 +263,28 @@ function do_archive_user_index() { } } +function do_image_user_index() { + global $wgDatabase; + if( $wgDatabase->indexExists( 'image', 'img_usertext_timestamp' ) ) { + echo "...usertext,timestamp key on image already exists.\n"; + } else { + echo "Adding usertext,timestamp key on image table... "; + dbsource( archive("patch-image-user-index.sql"), $wgDatabase ); + echo "ok\n"; + } +} + +function do_oldimage_user_index() { + global $wgDatabase; + if( $wgDatabase->indexExists( 'oldimage', 'oi_usertext_timestamp' ) ) { + echo "...usertext,timestamp key on oldimage already exists.\n"; + } else { + echo "Adding usertext,timestamp key on oldimage table... "; + dbsource( archive("patch-oldimage-user-index.sql"), $wgDatabase ); + echo "ok\n"; + } +} + function do_watchlist_update() { global $wgDatabase; $fname = 'do_watchlist_update'; @@ -1008,6 +1030,10 @@ function do_all_updates( $shared = false, $purge = true ) { do_restrictions_update(); flush (); do_archive_user_index(); flush (); + + do_image_user_index(); flush (); + + do_oldimage_user_index(); flush (); echo "Deleting old default messages (this may take a long time!)..."; flush(); deleteDefaultMessages();