Skip to content

面试速答(先看这里)

**一句话结论:**在 MySQL 中, BLOB 和 TEXT 数据类型都用于存储大量数据。

60秒标准回答:

在 MySQL 中, BLOB 和 TEXT 数据类型都用于存储大量数据。BLOB的全称是Binary Large Object,所以他主要被设计出来是存储二进制数据的,而TEXT主要是用于存储文本数据

所以, 当我们要在数据库中存储二进制数据,比如图像、音频、视频等等,就可以把他们的二进制的对象存储到BLOB中。而我们如要存长文本,如文章、扩展信息等等,则通常使用TEXT

因为BLOB 数据类型按二进制方式处理数据,所以他不会对存储的数据进行字符集转换,并且不支持排序。而TEXT 数据类型则是以字符的方式存储文本数据,并且可以对数据进行字符集转换和排序等操作

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**所以, 当我们要在数据库中存储二进制数据,比如图像、音频、视频等等,就可以把他们的二进制的对象存储到BLOB中。
  • **要点2:**因为BLOB 数据类型按二进制方式处理数据,所以他不会对存储的数据进行字符集转换,并且不支持排序。
  • **要点3:**BLOB 和 TEXT 类型都有不同的变种,分别支持不同的存储大小:
  • **要点4:**TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB
  • **要点5:**TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT

**记忆锚点:**BLOB → TEXT → 数据类 → MEDIUMBLOB → MEDIUMTEXT → TINYBLOB

追问准备:

  • 围绕「BLOB」:底层原理是什么?使用时有哪些边界和常见坑?
  • 围绕「TEXT」:底层原理是什么?使用时有哪些边界和常见坑?
  • 围绕「数据类」:底层原理是什么?使用时有哪些边界和常见坑?
  • 如果线上出现异常,你会如何定位、验证并规避?

典型回答 ​

在 MySQL 中,BLOB 和 TEXT 数据类型都用于存储大量数据。BLOB的全称是Binary Large Object,所以他主要被设计出来是存储二进制数据的,而TEXT主要是用于存储文本数据。

所以,当我们要在数据库中存储二进制数据,比如图像、音频、视频等等,就可以把他们的二进制的对象存储到BLOB中。而我们如要存长文本,如文章、扩展信息等等,则通常使用TEXT。

因为BLOB 数据类型按二进制方式处理数据,所以他不会对存储的数据进行字符集转换,并且不支持排序。而TEXT 数据类型则是以字符的方式存储文本数据,并且可以对数据进行字符集转换和排序等操作。

BLOB 和 TEXT 类型都有不同的变种,分别支持不同的存储大小:

  • TINYBLOB / TINYTEXT: 存储最大长度为 255 字节
  • BLOB / TEXT: 存储最大长度为 65,535 字节(64 KB)
  • MEDIUMBLOB / MEDIUMTEXT: 存储最大长度为 16,777,215 字节(16 MB)
  • LONGBLOB / LONGTEXT: 存储最大长度为 4,294,967,295 字节(4 GB)
存储内容字符集转换排序类型
BLOB二进制(如视频、音频)不支持不支持TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB
TEXT文本(如文章内容)支持支持TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT