大量保存信息,如 url, email 之类的字符串
保存到mysql,数量比较大,百万,千万。。。
乍样设计表,保存大量的信息
要求:查找速度快(这个重要),插入速度快(次要)
这里暂时不讨论分表,分区之类的。。。。
初步的想法
自增id url url散列后的唯一int(暂时称作hashint,当然这个是索引)
如果做到了 url 与 hashint 一一对应,那么,查找时以int去查找,速度最快
问题出现了,这个散列乍样做到一一对应??豸像做不到吧???
暂时想不到其它的办法了。。。。哥们支个招吧??
分最多只有100了
[解决办法]
百万千万还行吧
找个合适的字符串hash函数就行了
一抓一大把
贴个jdk的
hash = 0
count是字符串长度
value是字符串的值
public int hashCode() { int h = hash; int len = count; if (h == 0 && len > 0) { int off = offset; char val[] = value; for (int i = 0; i < len; i++) { h = 31*h + val[off++]; } hash = h; } return h; }
[解决办法]
不用mysql存储,用lucense建索引文件,然后查索引。
[解决办法]
千万不算啥,小数据量了.