关于这个过于简单的例子:
在这个数据库方案中
+--------------+ +-------------------+
| MASTER_TABLE | | FILES_TABLE |
+-----+--------+ +-----+------+------+
| nID | field | | nID | meta | BLOB |
+-----+--------+ +-----+------+------+
| 1 | ... | | 1 | ... | ... |
+-----+--------+ +-----+------+------+
如果我创建这样的视图:
CREATE VIEW myView AS
SELECT master.*, file.meta
FROM master_table master
LEFT JOIN files_table file
USING (nid)
查询时是否会读取未使用的 BLOB 列myView
?(读作:查询视图会比只查询master_table慢得多)
我问这个是因为 BLOB 列将用于存储文件。我们首先将表一分为二的原因是为了加快 master_table 的查询速度。
免责声明:
在设计数据结构时,项目经理决定附加到数据的文件应该存储在数据库中而不是文件系统中。
我很清楚关于将文件存储在数据库与文件系统中的大量激烈讨论,但正如我所说,这不是我决定的,我也无权改变决定。