从MySQL读取更快或从文件读取更快?

mat*_*hew 4 php mysql file

您好

我怀疑我看到在大表的情况下读取mysql数据的速度较慢...我已经做了很多优化但是无法通过..

我想的是,如果我将数据存储在一个文件中,它会提供更好的速度吗?

当然,每个数据都是一个单独的文件.所以数百万的数据=数百万的文件.我同意它会消耗磁盘空间......但是阅读过程怎么样?它更快?

我正在使用PHP来读取文件...

mar*_*rio 13

读一个文件=快.

读多个/大文件=慢.

从数据库中读取单个小条目=浪费I/O.

组合数据库中的许多条目=比文件访问更快.


shy*_*ent 8

只要您的表被正确编入索引并且只要您使用这些索引(这是正确的),使用关系数据库(如mysql)将更快,更强大,更灵活(在此处插入许多流行语)等.

要检查查询的性能与您的期望不符的原因,可以在explain您的选择中使用该子句(http://dev.mysql.com/doc/refman/5.1/en/explain.html).

  • @Ignacio Vazquez-Abrams:..或关闭:P但是,我确实看到了你的观点 (5认同)
  • 除非DB服务器功能不足或过载. (2认同)

chi*_*oro 6

这取决于您存储的数据类型。使用 SQL 读取结构化数据通常更快、更灵活/更强大,因为这正是它的用途。如果您想按某个属性进行搜索、过滤、排序或分组,DBS 的索引结构和优化是合适的。

然而,当使用数据库存储大文件(BLOB)时,其中包含非结构化数据,即您不打算按文件的任何部分进行搜索、过滤、排序或分组,那么这些文件只会扩大数据库大小并让它变慢。微软对此主题进行了一项有趣的研究(只需找到链接即可)。这项研究是 Microsoft 在其 SQLServer 中引入外部 BLOB 存储的原因,这基本上意味着您所要求的:BLOB 保存在数据库外部的文件中,因为他们测量到这种方式访问​​速度要快得多。

存储文件(例如,图片、视频、文档...)时,您通常在文件上有一些元数据,您希望能够将其与 SQL 等结构化查询语言一起使用,而实际文件不一定需要保存在数据库中。


Ign*_*ams 5

回答这个话题,是的.

我的意思是,有很多(未提及的)因素,不可能明确地说每次都会比另一个更快.