请教一个数据库的问题

2020-02-18 10:53:11 +08:00
 haikuo93

假设我用 postgresql 来存文件结构,比如 第一列:name, 第二列:size, 第三列:content

其中第一列和第二列是需要经常读取的列,存的数据较小, 第三列是不经常被访问的列,存的是文件内容,数据量较大,那每次读取一行的时候,会把第三列也在磁盘中读出来吗( select name, size from.. 这样读) 如果会读出来,读取性能是不是受到了影响呢,是不是要把 content 分出来单独弄成一个表呢

1381 次点击
所在节点    数据库
4 条回复
glacer
2020-02-18 15:32:04 +08:00
会,是行存储就会
saulshao
2020-02-18 20:48:19 +08:00
通常的选择是会把 Content 列变成一个单独的表
wanguorui123
2020-02-18 22:03:16 +08:00
文件就不要存数据库了,备份数据库要崩溃
knives
2020-02-19 08:28:59 +08:00
依据 PG 的文档,在 text 类型的字段中存储较大数据时,实际的内容将另外存放到背景表中。从这个角度推断,只要 select 语句中不包含 content,对性能应该没有太大影响。当然,最好还是实际做些性能测试进行验证。

参考: http://www.postgres.cn/docs/11/datatype-character.html

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

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

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

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

© 2021 V2EX