select * from url where url_crc=crc32("http://www.baidu.com") and url="http://www.baidu.com";
这样性能就会很高。
这样的缺陷是需要维护哈希值。可以使用触发器来实现维护工作。
创建一张表
CREATE TABLE `pseudohash` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL,
`url_crc` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建触发器
//插入
delimiter $$
create trigger pseudohash_crc_ins before insert on pseudohash for each row begin set NEW.url_crc=crc32(NEW.url);end;$$
//更新
create trigger pseudohash_crc_upd before update on pseudohash for each row begin set NEW.url_crc=crc32(NEW.url);end;$$
delimiter ;