1
huigeer 2014-12-31 16:31:35 +08:00
mysql 的查询也是有缓存滴 一定要磁盘io, 建议ssd
|
2
tczzjin 2014-12-31 16:33:27 +08:00
如果你的磁盘io和mysql都是跑在一个服务器的话那就是走mysql好,如果是不同服务器的话...
既然你都有>=2的服务器了,再配台服务器专门弄缓存才是王道 |
3
66CCFF 2014-12-31 16:33:36 +08:00
考虑ram cache?
|
4
yanze0613 2014-12-31 16:35:27 +08:00
同样的查询,mysql也有缓存,看具体查询了
|
5
9hills 2014-12-31 16:35:39 +08:00
你这个没法量化,比如MySQL查询是那种查询。10次IO又是多大的IO。。
|
6
learnshare 2014-12-31 16:39:46 +08:00
MySQL 也是存取文件,不过还有数据的缓存。当然,直接读硬盘的文件也很快。But 你不做测试,没法直接断言
|
7
wesley 2014-12-31 16:41:28 +08:00
如果是小文件,磁盘读取也是有缓存的
btw 可以用mysql的内存表 |
8
lincanbin 2014-12-31 16:43:38 +08:00
MySQL是有Cache的,近期的热数据会在内存的Cache里拿。
如果你是说用文件作Cache的话,只有在数据库数据量特别巨大时,才有明显效果。 |
9
typcn 2014-12-31 16:45:08 +08:00
我都是直接存成程序的变量 简单暴力有效
var xxx; if(!xxx){ xxx = mysql查询; } |
10
GtDzx 2014-12-31 16:49:32 +08:00
一般还是磁盘io更容易跑死吧
|
11
akstrom 2014-12-31 16:49:44 +08:00
shtml
|
12
66450146 2014-12-31 16:55:50 +08:00
/dev/shm
如果不用 ramdisk 的话妥妥的是 MySQL 啊 |
13
zhicheng 2014-12-31 17:08:48 +08:00
简单回答: MySQL
这个和文件系统,文件尺寸,IO 性能,服务器内存大小都有很大关系。 |
14
bjzhush 2014-12-31 17:13:46 +08:00
你不知道innodb buffer pool嘛
|
15
lhbc 2014-12-31 17:17:38 +08:00
Linux 系统,读过一次的文件在内存里,如果内存足够的话
数据库如果查询比较复杂,耗费计算资源还是比较多 |
16
lyragosa 2014-12-31 17:44:09 +08:00
实践出真知
我测试过 反复读100000次同一条sql文,和反复读硬盘上的一个文件,后者速度在我的机器上快很多。 ssd,可能对其他应用不一定成立。所以自己测试才是王道。 |
17
msg7086 2014-12-31 17:49:43 +08:00 via iPhone
说得好像读磁盘文件一定会访问磁盘一样
|
18
zhicheng 2014-12-31 17:54:50 +08:00
觉得读磁盘更快的同学,你们有没有考虑过一个问题,为什么大多数 Key/Value 数据库不是简单的把 Key 作为文件名 ,Value 作为内容按单个文件存储?
|
20
MozzieCN 2014-12-31 18:29:44 +08:00
@yueyoum 因为文件是被缓存的,就算不会被缓存,按目前的文件系统来看,大文件基本上都是连续存储的.文件太小太多的话是随机存储,会增加磁头移动定位的时间.
|
21
mqzhang 2014-12-31 19:33:27 +08:00 via Android
推荐用leveldb或者ssdb,速度快,数据放硬盘,内存占用小
|
22
kaneg 2014-12-31 19:53:58 +08:00 via iPhone
这要看你的sql查询耗时多少。举个极端的例子,每次查询耗时5秒,10次就得50秒,而如果只是从磁盘load一个结果,则要快得多,况且磁盘本身也有缓存
|
23
gamexg 2014-12-31 20:02:04 +08:00
感觉缓存好些,最大的好处是性能有问题直接改改就能直接上 memcache 。
|