JEFFREY

feiworks.com

url计数

CREATE TABLE `ps_url2` (
  `text` varchar(300) DEFAULT NULL,
  `url` varchar(500) DEFAULT NULL,
  `url_crc` int(11) unsigned NOT NULL DEFAULT '0',
  `count` int(11) DEFAULT '0',
  PRIMARY KEY (`url_crc`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TRIGGER IF EXISTS `pseudohash_crc_ins`;
DELIMITER ;;
CREATE TRIGGER `pseudohash_crc_ins` BEFORE INSERT ON `ps_url2` FOR EACH ROW begin set NEW.url_crc=crc32(NEW.url);end
;;
DELIMITER ;
DROP TRIGGER IF EXISTS `pseudohash_crc_upd`;
DELIMITER ;;
CREATE TRIGGER `pseudohash_crc_upd` BEFORE UPDATE ON `ps_url2` FOR EACH ROW begin set NEW.url_crc=crc32(NEW.url);end
;;
DELIMITER ;

记录text和url,采用crc32作为主键,插入与更新的时候用触发器更新url的crc32,采用crc32可以加快查询速度。

mysql的哈希索引只能在memory引擎的表中使用,mysql重启后表数据会丢失。

插入数据一条语句搞定:

insert into ps_url2(text,url) values(%s,%s) on duplicate key update count=count+1

on duplicate key确保插入时有重复数据自动更新原数据count数。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5 Zero

Copyright @ 2014-2019 All Rights Reserved.
feiworks.com