免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: qingmedia
打印 上一主题 下一主题

[性能] ip查询用文本好还是数据库好? [复制链接]

论坛徽章:
0
41 [报告]
发表于 2005-11-09 18:37 |只看该作者
这种做法还不如直接用纯真数据库格式定位来得快

论坛徽章:
0
42 [报告]
发表于 2005-11-09 18:56 |只看该作者
原帖由 北京野狼 于 2005-11-9 15:06 发表


1。人家问那种方法简单,就算能实现,这是简单方法吗?能并发读写吗?怎么具体定位到一条记录?
  而且你根本就没理解索引的作用.和IP数据库比较论坛用户登陆是不是更简单?
  只user,passwd就可以,拿cu干脆 ...


1.看了你的话我再仔细看了楼主的主帖,发现他没有提交"简单",而是问哪个好.而且你似乎没有考虑过这是个具体应用,老是考虑到"通用"上去,散发思维固然是好,但任务还是要完成的.我已经多次提到要"具体问题具体分析",这是个IP查询操作,应该就是在用户登录后获取用户IP然后得到一个具体的地址值,基本就只有只读操作.而且登录操作也不会频繁的每秒N次,再说我不认为楼主的网站的并发访问人次会过千.
你用"用户表"做论据就更不合理,难道你的用户表里就user和password这两个字段,且一但写入就不更改?

2.我脑子没有你老哥好使,好多事你不明说我真的不知道.你知道的,不要想当然的认为别人也知道.而且,你的"想当然"就一定是对的吗?没有相关事实说明的就不要想当然!如果真的不行,请拿出实际的论据和资料来说明!

论坛徽章:
0
43 [报告]
发表于 2005-11-09 18:58 |只看该作者
原帖由 geel 于 2005-11-9 17:23 发表
这种简单查询用关系型数据库当然不太对路。不过20万条记录,你用php完成全部操作,文件格式就像你说的那样,迅速取出符合条件的若干记录,做100000次查询,看看效率,再用数据库试试看


你太杞人忧天了吧,具体原因见我对狼兄的回复,一句话:具体问题具体分析!

论坛徽章:
0
44 [报告]
发表于 2005-11-09 19:01 |只看该作者
原帖由 wuruichang 于 2005-11-9 18:23 发表
20万条记录可以进行IP分段管理,上面我已经提到过,可能说得不是很清楚
例如我将59开头的IP数据存为59.txt,10开头的IP数据存为10.txt,把20万条记录分为N个文件,进行IP查询的时候,如果IP是59.33.181.0我就直接 ...



这个想法不错,有的文本数据库程序就是用类似的算法.
不过要结合目录,因为系统好像有BUG,同目录文件数有限制,超过会出错.
但在这里只是IP分段,如果是按A,B,C,D,E几种IP类型先分目录再分段保存的话,效率应该不错.

论坛徽章:
0
45 [报告]
发表于 2005-11-09 20:41 |只看该作者
你怎么就知道“应该就是在用户登录后获取用户IP然后得到一个具体的地址值,基本就只有只读操作.而且登录操作也不会频繁的每秒N次,再说我不认为楼主的网站的并发访问人次会过千.”

论坛徽章:
0
46 [报告]
发表于 2005-11-09 20:46 |只看该作者
原帖由 qingmedia 于 2005-11-9 18:08 发表


我试过ip2long(),发现有的IP它无法返回数字,所以我干脆把193.253.034.000改为193253034000。

The function ip2long() generates an IPv4 Internet network address from its Internet standard format ( ...


可以对每一段进行 decbin 补零

论坛徽章:
0
47 [报告]
发表于 2005-11-09 21:20 |只看该作者
其实要用文本的话,不用导出你现在用的那种格式。直接用纯真库就行,速度很快:)

[ 本帖最后由 geel 于 2005-11-9 21:22 编辑 ]

论坛徽章:
0
48 [报告]
发表于 2005-11-10 01:16 |只看该作者
各位的讨论实在使我受益匪浅,在此表示感谢!

看来用数据库从程序实现上看我感觉容易些,把用户ip用一个函数处理一下,再一个Select语句就搞定了;
而用文本,程序复杂的多,我看了ofstar的函数,写得挺长,一时半会我还看不明白。

不过,我觉得用文本最大的好处是ip数据升级方便,因为有很多ip数据都是文本格式的,其版本经常更新。把新的 ip的txt文件扔到某个目录覆盖原文件就可以了。

而数据库升级麻烦多了,从文本导入到数据库,20万条还是需要花点时间的,弄不好还超时,还要改服务器php设置,如果ip数据txt文件有新的版本,那还不知道怎么升级,清空重来还是...?

继续学习......

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
49 [报告]
发表于 2005-11-10 09:36 |只看该作者
原帖由 wuruichang 于 2005-11-9 18:23 发表
20万条记录可以进行IP分段管理,上面我已经提到过,可能说得不是很清楚
例如我将59开头的IP数据存为59.txt,10开头的IP数据存为10.txt,把20万条记录分为N个文件,进行IP查询的时候,如果IP是59.33.181.0我就直接 ...


理论上59.txt还是会有几十万条记录。真想使用文本,这样做是不成。
参考邮件系统,还不错每个 IP一个文件,文件名字就是IP地址。再相应建立多级目录,
让一个目录文件不太多。

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
50 [报告]
发表于 2005-11-10 09:49 |只看该作者
原帖由 qingmedia 于 2005-11-10 01:16 发表
不过,我觉得用文本最大的好处是ip数据升级方便,因为有很多ip数据都是文本格式的,其版本经常更新。把新的 ip的txt文件扔到某个目录覆盖原文件就可以了。

而数据库升级麻烦多了,从文本导入到数据库,20万条还是需要花点时间的,弄不好还超时,还要改服务器php设置,如果ip数据txt文件有新的版本,那还不知道怎么升级,清空重来还是...?


别相信ofstar,对你没用处。从未听说文本数据升级方便,没有任何ip数据是文本格式的。
数据库升级 是最简单的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP