您好
我怀疑我看到在大表的情况下读取mysql数据的速度较慢...我已经做了很多优化但是无法通过..
我想的是,如果我将数据存储在一个文件中,它会提供更好的速度吗?
当然,每个数据都是一个单独的文件.所以数百万的数据=数百万的文件.我同意它会消耗磁盘空间......但是阅读过程怎么样?它更快?
我正在使用PHP来读取文件...
只要您的表被正确编入索引并且只要您使用这些索引(这是正确的),使用关系数据库(如mysql)将更快,更强大,更灵活(在此处插入许多流行语)等.
要检查查询的性能与您的期望不符的原因,可以在explain您的选择中使用该子句(http://dev.mysql.com/doc/refman/5.1/en/explain.html).
这取决于您存储的数据类型。使用 SQL 读取结构化数据通常更快、更灵活/更强大,因为这正是它的用途。如果您想按某个属性进行搜索、过滤、排序或分组,DBS 的索引结构和优化是合适的。
然而,当使用数据库存储大文件(BLOB)时,其中包含非结构化数据,即您不打算按文件的任何部分进行搜索、过滤、排序或分组,那么这些文件只会扩大数据库大小并让它变慢。微软对此主题进行了一项有趣的研究(只需找到链接即可)。这项研究是 Microsoft 在其 SQLServer 中引入外部 BLOB 存储的原因,这基本上意味着您所要求的:BLOB 保存在数据库外部的文件中,因为他们测量到这种方式访问速度要快得多。
存储文件(例如,图片、视频、文档...)时,您通常在文件上有一些元数据,您希望能够将其与 SQL 等结构化查询语言一起使用,而实际文件不一定需要保存在数据库中。