mysql数据库中BLOB和TEXT类型如何使用

Hi,MySQL的BLOB和TEXT类型是存储大块数据的强大工具,但是如果使用不好,那将是一个真正令人头疼的问题。
2 02 2 年,我在某城市的一个项目中差点因为没有区分这两种类型而陷入困境。

BLOB,这个东西是二进制的,比如图像、音频、视频。
考虑这些文件有多大,因此您需要选择正确的类型。
TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB,这四种容量从 2 5 5 字节到 4 GB。
您根据文件大小进行选择。
我当时就一头雾水,以为都是存储文件,所以就胡乱用了BLOB。
后来我才意识到我低估了文件的大小。

使用 BLOB 时,不要直接保存文件,因为这会导致数据库崩溃。
最好存储文件路径,例如服务器上的目录或对象存储的 URL。
如果必须保存,选择MEDIUMBLOB或LONGBLOB,并且需要考虑备份和恢复,这对于大文件来说可能很困难。

BLOB不支持全文索引,但是可以对前缀进行索引,例如只索引前1 00个字节,这样可以提高查询效率。

TEXT类型,这个东西用来存储长文本、文章内容、日志、JSON数据等。
TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT,容量也是从小到大,你根据文本的长度来选择。

使用TEXT时,不要使用SELECT,这样会返回大量数据,性能肯定会受到影响。
WHERE 条件不直接比较 TEXT 列,它们必须使用 ID 或前缀索引。

还要注意字符集和校对规则,并且必须支持多语言文本存储,例如UTF8 MB4
全文搜索是个好东西。
有了FULLTEXT索引,搜索效率可以大大提高。

哎,说到这些注意事项,不能设置默认值,必须优化查询,必须考虑备份和恢复,还少不了性能监控。

在实际应用场景中,比如存储用户头像,最好存储一个路径,将文件放到对象存储上。
对于文章内容,请使用 MEDIUMTEXT 或 LONGTEXT,并且必须构建 FULLTEXT 索引。
日志数据使用TEXT,按日期分为表格。

对于性能优化,选择正确的类型,避免全表扫描,监控查询执行计划,优化慢查询。

总之,BLOB和TEXT类型如果使用得好,可以提高数据库性能,但如果使用不当,那就真的很让人头疼了。

5.在 MySQL数据库中,以下数据库对象与数据库三级模式对应关系正确的是?

三层模型是一种层次结构。

模式是一种全局逻辑结构,每个数据库都有一个。
定义数据的逻辑外观,独立于其他层。
用DDL定义它并严格描述它。

外部模式是用户视图,本地逻辑结构。
数据库中的多个外部模式。
用户只能看到自己的意见,以确保安全。
用DDL定义,存储无关。

内部模式是物理存储,每个数据库一个。
描述数据如何存储以及索引如何组织。
用DDL定义,独立于用户。

子图像是一种映射关系。

需要外部模具/图案的图片。
定义外部模型和全局逻辑关系。
当模式改变时,图像也必须相应改变。
该程序使用外部模型,如果保持不变,则是独立的。
这样就实现了逻辑数据独立性。

mysql 数据库保存在哪里

MySQL数据存储在文件系统中,在Linux下为/var/lib/mysql。
HDD 或 SSD,取决于服务器配置,SSD 速度更快。
分布式存储? 使用 MySQLCluster 或 MongoDB。
表结构存储在.frm中,索引存储在.idx或.myi中,数据存储在.myd中,更改记录在.binlog中。
应正确设置权限,敏感数据应加密并定期备份。
磁盘要选好,布局要合理,索引要优化。
你自己掂量一下吧。