免费注册 查看新帖 |

Chinaunix

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

文件和数据表那个速度更快 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-05-14 13:10 |只看该作者
别迷信那些开源程序,那个plog效率极其低下

论坛徽章:
0
12 [报告]
发表于 2008-05-14 13:32 |只看该作者
原帖由 geel 于 2008-5-14 11:15 发表


那请问你放虚拟磁盘里的缓存怎么做分布式,怎么水平扩展

简单,一挂就上去了,呵呵。
当然戏法人人会变,各有巧妙不同,喜欢memcache就memcache吧。

论坛徽章:
0
13 [报告]
发表于 2008-05-14 16:31 |只看该作者
放内存确实是一个不错的选择
不过PHP现在想要放到内存,还得自己装扩展
放内存没有java和asp.net方便

论坛徽章:
0
14 [报告]
发表于 2008-05-14 17:23 |只看该作者
原帖由 sunnyfun 于 2008-5-14 13:32 发表

简单,一挂就上去了,呵呵。
当然戏法人人会变,各有巧妙不同,喜欢memcache就memcache吧。


怎么挂呢,nfs那性能真是不太敢用。不过如果只有一台机器,那用内存文件系统很爽

论坛徽章:
0
15 [报告]
发表于 2008-05-14 17:25 |只看该作者
克隆熊猫的两个回帖我都很赞同,确实是那样。

论坛徽章:
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
16 [报告]
发表于 2008-05-14 20:57 |只看该作者
原帖由 克隆熊猫 于 2008-5-14 13:08 发表
你想干嘛?
如今谁还把数据库服务和应用服务混着放啊?稍微负载高点的都分开了。

文件和数据表哪个快,你试一下就知道了,已完成连接的内存表显然是最快的,其次是程序的共享内存,比如memcache用到的,再其 ...



比较需要前提条件。  内存表和共享内存最快, 但不是一定的。 比如老版本的mysql的heap没有索引,数据大了还没普通数据库快。

而同样条件下,比如简单文本文件和数据量小的DB, 文件的速度比数据库快一个数量级以上, 文件的效率是数据库望尘莫及的。

[ 本帖最后由 北京野狼 于 2008-5-14 21:00 编辑 ]

论坛徽章:
0
17 [报告]
发表于 2008-05-14 21:36 |只看该作者
原帖由 汕头 于 2008-5-13 14:51 发表
看了PHPCMS和其他一些开源的程序,经常使用PHP文件作为缓存
但网上也有人认为在表里读数据比在文件中快
在CSDN上也有一贴,计论这个问题,不过没有结论



具体情况具体分析,,,简单的随便什么都可以.

论坛徽章:
0
18 [报告]
发表于 2008-05-15 06:26 |只看该作者
顶4L!
共享内存是王道,至少不用听硬盘吱吱叫个不停。

论坛徽章:
0
19 [报告]
发表于 2008-05-15 10:24 |只看该作者
共享内存的综合性能应该是最好的。瓶颈主要在连接数量和组织数据结构上,所以这样的机器对CPU要求也不低。

文件缓存比较适应小规模数据,或者不经常变动的数据,如静态页面缓存之类的,瓶颈在磁盘IO上。

数据库的优势在于快速定位,用与查找更新替换之类的操作,如果只是存放不变的数据,还是文件系统好一些。数据库瓶颈包括连接与IO两部分。如果不考虑数据库自身的内存缓存的话,数据表的IO肯定没有文件系统快,因为绝大部分数据库系统都是建立在文件系统之上的。别跟我说裸设备。

所以,使用哪种缓存,要根据自己的硬件和数据量,以及具体的逻辑需求来确定。

论坛徽章:
0
20 [报告]
发表于 2008-05-15 13:55 |只看该作者
其实没定论,楼上也已经很多人都说了,要具体情况具体分析。

按LZ的具体问题来说,那就是,phpcms,discuz之类之所以用文件,是因为要考虑虚拟主机和非专业用户,那几个变量从数据库中查询的话,query cache配置的好,效率也差不多,但是也怕产生数据库的cpu和io时间,共享内存又不是谁都可以用的,所以折中一下,文件是最好的办法,而且直接include的话,大多会有缓存。对于点击数更新这种写操作来说,在表中做update和delete的代价是很昂贵的,所以牺牲io来换取数据库效率。考虑到现在动辄8M以上缓存的硬盘和绝大多数都关闭磁盘同步的linux,这种io的代价相对update还是可以接受的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP