From 0d044e6071614dfdf016d55014b6912a54fb5dd3 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Wed, 26 Sep 2012 14:05:38 +1000 Subject: [PATCH] Truncate SHA-1 indexes Per Asher Feldman's suggestion on wikitech-l, truncate DB indexes which hold SHA-1 values, so that the space usage is reduced at the expense of a very small overhead when selecting values that have colliding truncated hashes. Change-Id: I059de4f7bba9a949cf0a93a57df32226c41d8ce0 --- maintenance/archives/patch-img_sha1.sql | 4 ++-- maintenance/tables.sql | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/maintenance/archives/patch-img_sha1.sql b/maintenance/archives/patch-img_sha1.sql index 35950f581f..0a375c4ffc 100644 --- a/maintenance/archives/patch-img_sha1.sql +++ b/maintenance/archives/patch-img_sha1.sql @@ -1,8 +1,8 @@ -- Add img_sha1, oi_sha1 and related indexes ALTER TABLE /*$wgDBprefix*/image ADD COLUMN img_sha1 varbinary(32) NOT NULL default '', - ADD INDEX img_sha1 (img_sha1); + ADD INDEX img_sha1 (img_sha1(10)); ALTER TABLE /*$wgDBprefix*/oldimage ADD COLUMN oi_sha1 varbinary(32) NOT NULL default '', - ADD INDEX oi_sha1 (oi_sha1); + ADD INDEX oi_sha1 (oi_sha1(10)); diff --git a/maintenance/tables.sql b/maintenance/tables.sql index 062052f77c..8635604c0f 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -846,7 +846,7 @@ CREATE INDEX /*i*/img_size ON /*_*/image (img_size); -- Used by Special:Newimages and Special:ListFiles CREATE INDEX /*i*/img_timestamp ON /*_*/image (img_timestamp); -- Used in API and duplicate search -CREATE INDEX /*i*/img_sha1 ON /*_*/image (img_sha1); +CREATE INDEX /*i*/img_sha1 ON /*_*/image (img_sha1(10)); -- @@ -884,7 +884,7 @@ CREATE INDEX /*i*/oi_usertext_timestamp ON /*_*/oldimage (oi_user_text,oi_timest CREATE INDEX /*i*/oi_name_timestamp ON /*_*/oldimage (oi_name,oi_timestamp); -- oi_archive_name truncated to 14 to avoid key length overflow CREATE INDEX /*i*/oi_name_archive_name ON /*_*/oldimage (oi_name,oi_archive_name(14)); -CREATE INDEX /*i*/oi_sha1 ON /*_*/oldimage (oi_sha1); +CREATE INDEX /*i*/oi_sha1 ON /*_*/oldimage (oi_sha1(10)); -- -- 2.20.1