一个页面读 10 次硬盘 io 好,还是取 10 次 mysql 查询好?

2014-12-31 16:27:11 +08:00
 kmvan


如果服务器没有 memcache 之类的内存数据库,那么程序将缓存数据存为硬盘文件。

在一个页面中,有 10 个模块,每个模块都需要读取一次 mysql 来查询数据。如果将各个模块缓存,没有 memcache 的情况下,将得到缓存数据为 10 个的硬盘文件,这样就减轻了 mysql 压力了。

But,这样做真的可以吗?磁盘 io 比起 mysql 谁更容易跑死?
4674 次点击
所在节点    程序员
24 条回复
mqzhang
2014-12-31 19:33:27 +08:00
推荐用leveldb或者ssdb,速度快,数据放硬盘,内存占用小
kaneg
2014-12-31 19:53:58 +08:00
这要看你的sql查询耗时多少。举个极端的例子,每次查询耗时5秒,10次就得50秒,而如果只是从磁盘load一个结果,则要快得多,况且磁盘本身也有缓存
gamexg
2014-12-31 20:02:04 +08:00
感觉缓存好些,最大的好处是性能有问题直接改改就能直接上 memcache 。
msg7086
2015-01-01 02:49:17 +08:00
@zhicheng 因为会对Value的结构进行索引吧,比如NoSQL里存JSON/XML。
纯KV查询很多就是直接用磁盘的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/158242

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX