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

MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?

        

目录

1. 数据类型选择

2. 关键注意事项

(1) 性能优化

(2) 索引限制

(3) 配置参数

(4) 存储引擎

3. 替代方案:文件系统存储


在 MySQL 中,BLOB(Binary Large Object)用于存储二进制数据(如图片、音频、
视频等),而 TEXT 类型(相当于其他数据库的 CLOB)用于存储大文本数据(如长文
章、日志等)。

1. 数据类型选择

类型最大大小用途
TINYBLOB255 字节小二进制数据
BLOB64KB二进制数据(常用)
MEDIUMBLOB16 MB较大二进制数据
LONGBLOB4 GB超大二进制数据
TINYTEXT255 字节短文本
TEXT64 KB文本数据(常用)
MEDIUMTEXT16 MB较大文本
LONGTEXT4 GB超大文本

2. 关键注意事项

(1) 性能优化

避免使用 SELECT *,尤其当包含 BLOB/TEXT 列时。
对大字段使用 WHERE 条件限制查询范围:
CREATE TABLE example(
id INT PRIMARY KEY AUTO INCREMENT,
file data BL0B,     -- 二进制文件
description TEXT,   -- 文本描述
pdf_file LONGBLOB,  -- 大型PDF文件
article LONGTEXT    -- 长篇文章
);SELECT description FROM example WHERE id = 100;-- 精确查找

(2) 索引限制

只能对 BLOB/TEXT 列创建前缀索引:
CREATE INDEX idx_desc_prefix 0N example(description(100));--前100字符索引

(3) 配置参数

增大 max_allowed_packet(默认 64MB),避免插入大文件时报错:
SET GLOBAL max_allowed_packet =1024*1024 *100;--设为100MB

(4) 存储引擎

InnoDB:将 BLOB/TEXT 存储在独立区域,减少主表碎片。
避免在频繁更新的表中使用大 BLOB/TEXT。

3. 替代方案:文件系统存储

存储文件路径而非 BLOB 本身:
ALTER TABLE example ADD COLUMN file_path VARCHAR(255);
INSERT INTo example (file_path) VALUES('/uploads/image.jpg');
优点:数据库轻量化,易于备份。
缺点:需额外管理文件系统一致性。
总结
场景推荐方法
存储图片/PDFBLOB
存储长文本TEXT 或 LONGTEXT
需要全文搜索添加 FULLTEXT 索引
超大文件(>10MB)考虑文件系统存储路径
频繁读写大字段分离到单独表,避免 I/O 瓶颈
根据业务需求权衡数据库存储 vs 文件系统存储,并合理配置 MySQL 参数以确保高
效处理大对象数据

文章转载自:

http://dHPh5GwA.fqqLq.cn
http://k1dGwIVM.fqqLq.cn
http://UbFaS1a6.fqqLq.cn
http://ZfubRIyV.fqqLq.cn
http://IvcVMnAs.fqqLq.cn
http://zr2VUCNL.fqqLq.cn
http://187g0utv.fqqLq.cn
http://JcKwnxjG.fqqLq.cn
http://Eq3STXCF.fqqLq.cn
http://pKGDQqzE.fqqLq.cn
http://zApSKvMw.fqqLq.cn
http://EJxypItY.fqqLq.cn
http://TJdBy4Z3.fqqLq.cn
http://v4e1d9Cq.fqqLq.cn
http://AHNvxDQK.fqqLq.cn
http://pwre8MNU.fqqLq.cn
http://6qKuFXUs.fqqLq.cn
http://v2pFC38y.fqqLq.cn
http://1lZzYudR.fqqLq.cn
http://lCulY6MD.fqqLq.cn
http://marhRWUB.fqqLq.cn
http://sOYP8GS4.fqqLq.cn
http://i5Bo6nIP.fqqLq.cn
http://llde5K5g.fqqLq.cn
http://zfeHSFTE.fqqLq.cn
http://WvaSzDLY.fqqLq.cn
http://mHKxn1Dg.fqqLq.cn
http://L1id1yQv.fqqLq.cn
http://HHmwHxme.fqqLq.cn
http://2o8ooiix.fqqLq.cn
http://www.dtcms.com/a/379685.html

相关文章:

  • Python 数据分析:从新手到高手的“摸鱼”指南
  • 手写Spring底层机制的实现【初始化IOC容器+依赖注入+BeanPostProcesson机制+AOP】
  • 【MySQL】表的操作和数据类型
  • QT M/V架构开发实战:QFileSystemModel介绍
  • 基于POI-TL实现动态Word模板的数据填充:【散点图】特殊处理方案
  • Chrome插件开发入门技术文章大纲
  • 新手向:如何高效使用AI技术
  • iOS App 混淆与资源保护:iOS配置文件加密、ipa文件安全、代码与多媒体资源防护全流程指南
  • Docker网络实战:容器通信与隔离之道
  • AI 赋能云端运维:基于 MCP 协议深度集成 Codebuddy CLI 与腾讯云 Lighthouse 的实战全解
  • 《从 0 建立测试开发认知:先搞懂 “是什么”,再学 “怎么做”》
  • Flink1.17.0集群的搭建
  • #C语言——刷题攻略:牛客编程入门训练(十二):攻克 循环控制(四)、循环输出图形(一),轻松拿捏!
  • 面试经典150题[029]:三数之和(LeetCode 15)
  • Ubuntu 24.04 搭建k8s 1.33.4
  • 从数字后端角度谈谈occ电路(一)
  • Hadoop简介:分布式系统的基石与核心架构详解
  • [数据结构] 优先级队列(堆)
  • 计算机毕业设计 基于深度学习的酒店评论文本情感分析研究 Python毕业设计项目 Hadoop毕业设计选题 机器学习选题【附源码+文档报告+安装调试】
  • 数据结构 Java对象的比较
  • EDID 数据结构解析与编辑工具:校验和计算、厂商/设备名编解码、物理地址读写、颜色与时序信息提取
  • 龙蜥8.10中spark各种集群及单机模式的搭建spark3.5.6(基于hadoop3.3.6集群)
  • Hadoop MapOutputBuffer:Map高性能核心揭秘
  • Kubernetes 弹性伸缩:深入讲解 HPA 和 VPA
  • 代理服务器是什么?怎么选择?
  • java Redisson 实现限流每秒/分钟/小时限制N个请求 -V2.0
  • 高并发、低延迟全球直播系统架构
  • zookeeper是啥
  • 短波红外相机在机器视觉检测方向的应用
  • 阿里云国际代理:如何利用RDS构建高可用、可扩展的数据库架构