haikuo93
V2EX  ›  数据库

请教一个数据库的问题

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

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