haikuo93
V2EX  ›  数据库

请教一个数据库的问题

  •  
  •   haikuo93 · Feb 18, 2020 · 1819 views
    This topic created in 2280 days ago, the information mentioned may be changed or developed.

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

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

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

    参考: http://www.postgres.cn/docs/11/datatype-character.html
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1063 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 17:56 · PVG 01:56 · LAX 10:56 · JFK 13:56
    ♥ Do have faith in what you're doing.