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
-- 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));
-- 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));
--
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));
--