V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
haikuo93
V2EX  ›  数据库

请教一个数据库的问题

  •  
  •   haikuo93 · 2020-02-18 10:53:11 +08:00 · 1382 次点击
    这是一个创建于 1740 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    参考: http://www.postgres.cn/docs/11/datatype-character.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:10 · PVG 07:10 · LAX 15:10 · JFK 18:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.