*Index image and oldimage tables by user/timestamp (this should help slow renameuser...
authorAaron Schulz <aaron@users.mediawiki.org>
Mon, 9 Jul 2007 19:39:18 +0000 (19:39 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Mon, 9 Jul 2007 19:39:18 +0000 (19:39 +0000)
maintenance/archives/patch-image-user-index.sql [new file with mode: 0644]
maintenance/archives/patch-oldimage-user-index.sql [new file with mode: 0644]
maintenance/tables.sql
maintenance/updaters.inc

diff --git a/maintenance/archives/patch-image-user-index.sql b/maintenance/archives/patch-image-user-index.sql
new file mode 100644 (file)
index 0000000..2205d21
--- /dev/null
@@ -0,0 +1,8 @@
+-- \r
+-- image-user-index.sql\r
+-- \r
+-- Add user/timestamp index to current image versions\r
+-- \r
+\r
+ALTER TABLE /*$wgDBprefix*/image\r
+   ADD INDEX img_usertext_timestamp (img_user_text,img_timestamp);\r
diff --git a/maintenance/archives/patch-oldimage-user-index.sql b/maintenance/archives/patch-oldimage-user-index.sql
new file mode 100644 (file)
index 0000000..b0ba3ea
--- /dev/null
@@ -0,0 +1,8 @@
+-- \r
+-- oldimage-user-index.sql\r
+-- \r
+-- Add user/timestamp index to old image versions\r
+-- \r
+\r
+ALTER TABLE /*$wgDBprefix*/oldimage\r
+   ADD INDEX oi_usertext_timestamp (oi_user_text,oi_timestamp);\r
index c9f52ea..ed7ecd3 100644 (file)
@@ -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))
index 585679f..8a7c02e 100644 (file)
@@ -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();