怎样建立一个邮箱账号?
以 *** 邮箱为例 打开 *** 邮箱官网 选择登录 *** 然后系统会提示你开通 按照要求输入指定信息 然后就行了报道 *** 邮箱通常以 @ href="http:官网//qq.com" target="_blank" class="J9jyh$#%c6e01e59ba93be26 out-link editing" 结尾 其他关于邮箱注册 *** 也是差不多的
给你一个含有1亿个 *** 号码的文件,如何快速的查找某个 *** 号码?
qq号码其实就是long类型 ,数据库以long类型作为非自增主键,建立1024张表,表名为qq_(0-1023) ,用qq号码除1024得到余数范围为0-1023,根据余数查表,然后再根据主键查qq号,查找效率 ,应该在10ms以内。附加:然后qq号除1024的余数=qq号 & 1023,qq号用整形比较运算效率更高,用数据库主键是因为聚合索引查找效率更高。
*** 1 ,
微秒级查询 *** ,假设现在 *** 号共10位数,声明一个Bitmap ,大小99亿,每个bit只存0或1,读取文件 , *** 号作为下标设置,如果对应位置的标记为0设置为1 。某号码X,只需要判断下标位置X的标记是否为1即可
*** 2 ,
节省内存的 *** ,创建一个文件共99亿行,每行一个换行符,读取 *** 文件号码 ,用java中随机文件访问类,直接定位到对应行,写入 *** 号 ,依次写完,待查X号码,类似定位 *** ,判定位置处内容是否是换行符
*** 3,文件中每个 *** 号命名一个文件,利用系统查找工具查找 ,或利用和编程语言中文件工具类判断是否存在
*** 4,娱乐篇
搞一个网站,首页创建1亿个超链接 ,每个链接放一个 *** 号,每个号链接到站内对应 *** 号命名的网页,然后将网页登记到百度收录,一个星期后 ,在搜索框用site命令,指定上述网站地址,并输入要搜索的内容 ,也是毫秒级返回
最简单的,grep命令搞定。想加快,先split ,再并行跑多个grep。另外一个办法,perl脚本,先把整个文件读入内存 ,在内存里操作速度很快,再一条条比对 。qq号只有十多位,按16位算 ,16字节,3亿为48亿字节,大约4.8GB,对服务器来说小case
1亿qq号 ,按照每个文qq号11位算,大概占用1.02g空间,因为数据量不大 ,可以全加载进内存。这样的话可以有好多 *** 。
之一种是内存映射文件,Windows内存映射文件可以映射磁盘上的大文件,别说1g ,就算10g也没问题,然后操作就跟在内存操作一样,我之前试过500m的纯文本(打印的π) ,用c语言函数strstr查找字符串就能秒得结果,1g跟500m区别不大。
第二种 *** ,同样是建立在数据量不大的基础上 ,可以构造map存在内存中qq号就是key,因为map基于hash预算,查询效率非常高,也是秒得结果 。
第三种存数据库 ,因为数据达到亿级,还是考虑oracle这种单表性能爆表的比较好,放mysql估计比较悬。
第四种可以用内存数据库 ,如redis,其中key存为qq号,人家专业干这个的 ,也是秒得结果。
第五种es,其实es干这个有点大材小用 。
还没有评论,来说两句吧...