当前位置: 首页 > news >正文

读书笔记:为什么数据库存储LOB数据时要选择「行内存储」?

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

为什么数据库存储LOB数据时要选择「行内存储」?

在数据库设计中,我们经常会存储大型对象数据(LOB),比如长文本、图片或文件。Oracle数据库提供了两种存储LOB的方式:行内存储行外存储。这篇文章会用通俗的语言解释它们的区别,并告诉你为什么在大多数情况下应该选择行内存储。


什么是行内存储和行外存储?

想象一下,数据库中的一张表就像一个Excel表格。每个单元格通常只能放少量数据(比如4000字节以内)。但如果某个单元格需要存储更长的内容(比如一篇文章),数据库就会面临选择:

  1. 行内存储 (ENABLE STORAGE IN ROW)

    • 如果内容不长(≤4000字节),就直接存在单元格里。
    • 就像在Excel单元格里直接写短文,查看时一目了然,速度快。
    • 如果内容超长,数据库会自动把它移到单独的存储区域(LOBSEGMENT)。
  2. 行外存储 (DISABLE STORAGE IN ROW)

    • 无论内容多短,都强制存到单独的存储区域。
    • 就像在Excel单元格里只写一个“附件链接”,每次查看都要点开链接才能看到内容,速度更慢。

为什么行内存储通常是更好的选择?

  1. 性能更快

    • 短数据直接存在表中,读取时不需要额外跳转到其他区域,减少了I/O操作。
    • 实验表明,读取行内存储的LOB比行外存储快得多(逻辑I/O次数从5.4万次降到0次,物理I/O也更少)。
  2. 减少资源消耗

    • 行外存储需要维护额外的索引(LOBINDEX)和存储段(LOBSEGMENT),更新和插入操作会更耗时。
    • 行内存储避免了这些开销,尤其适合频繁读写短文本的场景(比如商品描述、用户备注等)。
  3. 利用缓存优势

    • 表数据通常会被缓存到内存中,而LOBSEGMENT默认不缓存。
    • 行内存储的短LOB可以享受缓存带来的速度提升,而行外存储每次可能都需要磁盘读写。

什么时候用行外存储?

虽然行内存储是默认推荐,但以下情况可能适合行外存储:

  • LOB数据通常很大(比如超过4000字节),放表内反而浪费空间。
  • 数据不需要频繁读取,或者对读取速度不敏感。
  • 有独立缓存LOB数据的特殊需求(但需要额外配置)。

实际例子说明

假设我们有一张表存储文章内容,其中多数文章是短评(<4000字节),少数是长文。

  • 如果使用行内存储:短评直接存在表里,读取飞快;长文自动移到外部,不影响效率。
  • 如果强制行外存储:即使短评也要额外访问外部存储,效率低下。

总结

  • 优先选择行内存储ENABLE STORAGE IN ROW),这是Oracle的默认设置。
  • 它兼顾了短数据的高效和长数据的灵活性,适合大多数场景。
  • 只有在明确需要强制分离LOB数据时,才考虑行外存储。

简单来说:让数据库自动决定小数据放表内、大数据放外部,才是最优解!

------------------作者介绍-----------------------
姓名:黄廷忠
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

http://www.jsqmd.com/news/40314/

相关文章:

  • 2025年北京雅思培训机构哪家强,高分提分 / 定制课程 / 封闭集训 / 小班教学 / 全程督学机构推荐哪家好
  • 当下高压氧舱机构的行业现状
  • Keycloak会话标识符重用漏洞导致会话劫持风险分析
  • B5817W-ASEMI可直接替换安世PMEG2005EH
  • 4.2.3 疲劳强度试验 11.14
  • [LangChain] 17. Memory基础
  • Java Exchanger
  • 2025 最新净化工程厂家推荐排行榜 实验室 / 手术室 / 医药 / 食品 / 厂房洁净工程优质服务商医药/食品净化工程/净化车间工程公司推荐
  • 通配符优化 dp 学习笔记
  • 2025年尖角方管实力厂家权威推荐榜单:玻璃幕墙精致钢/直角方矩管/精制钢源头厂家精选
  • 20232308 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • TurboWarp 部署云变量服务
  • Java 信号量机制实现
  • lc:338练习的一点思考
  • 京东商品评论接口深度逆向:从加密参数破解到情感倾向分析
  • [LangChian] 18. 自动维护聊天记录
  • 二进制掩码规律
  • jenkins构建生成docker镜像
  • 在线文档大全
  • AI大事记12:Transformer 架构——重塑 NLP 的革命性技能(下)
  • 记一次多线程插入或者更新数据库表操作优化过程
  • 2025年进口干冰机代理工厂权威推荐榜单:干冰清洗机/干冰制造机源头厂家精选
  • 接口调试利器,Postman免安装,免登陆 - 详解
  • 微算法科技(NASDAQ MLGO)在委托权益证明DPoS主链上引入PoW轻节点验证,提升抗量子攻击能力
  • 字的bi-gram可能是个馊主意
  • 常见的几种硬盘接口类型
  • 2025年w70钨铜棒制造企业权威推荐榜单:钨铜导电块/钨铜块/93钨合金源头厂家精选
  • 嵌入式系统profinet转devicenet固件与硬件接口的连接案例
  • KMPlayer下载教程(2025新版)——全功能安装配置与使用经验详解
  • 一个通过强制使用符号来避免链接器忽略符号的方法