实战演练 | 使用 Navicat 在 MySQL 中存储图像
近年来,Web应用程序中的图像数量一直在稳定增长。还需要在不同尺寸的图像之间进行区分,例如缩略图,网络显示图像等。例如,我最近开发的一个应用程序显示新闻项目,其中每个项目都有缩略图和主要文章图像。另一个应用程序显示大小的公司徽标。
大多数情况下,图像可以存储在网络服务器上,然后使用URL进行引用。这仅需要将路径字符串存储在数据库中,而不是图像本身。但是,有时这是不可行的,例如应用程序对文件系统的权限不足。在这些情况下,您可以将图像直接存储在数据库中,然后使用应用程序代码加载它们。
Navicat 开发和管理工具为图像管理提供了出色的支持。在今天的博客中,我们将学习Navicat如何使存储图像变得简单。出于演示目的,我将针对MySQL 8数据库使用 Navicat Premium (点击 这里,下载14天免费全功能试用版),但相同的过程也将适用于其他关系数据库。
设计表
在MySQL中,用于图像存储的首选数据类型是BLOB。 但是,实际上有三种BLOB。 选择哪种图像取决于要存储的图像大小。 如有疑问,请转到更大容量的BLOB! 以下是三种BLOB类型:
- BLOB:最多可以处理65,535字节的数据。
- MEDIUMBLOB:支持的最大长度为16,777,215字节。
- LONGBLOB:最多存储4,294,967,295字节的数据。
考虑到这一点,这是一个非常适合缩略图图像的表定义,但不会太大:
除了图像本身,您可能会发现存储有关图像的其他信息也很有用,例如ID,名称,描述,大小,类型(JPEG,GIF,BITMAP等),类别等。
将图像加载到images表中
使用Navicat,无需编写SQL代码即可加载图像。 相反,您可以使用标准的文件浏览器来查找和插入图像文件。
无论何时在“网格”或“表单”视图中查看表内容,都可以从数据类型下拉列表中选择希望Navicat处理数据的方式:
从下拉菜单中选择“图像”会在表/行内容下方添加一个图像预览窗格:
在文件预览的左侧,您将找到三个图标:“加载”,“保存到磁盘”和“清除”。 要加载图像,只需单击“加载”图标,然后使用操作系统的标准“文件浏览器”对话框选择图像。 插入后,图像及其大小(以字节为单位)将显示在预览窗格中:
请注意,上图需要MEDIUMBLOB,因为其大小超过65,535字节!
总结
在今天的博客中,我们学习了如何使用Navicat Premium 将图像存储在 MySQL 8数据库中。
往期回顾
相关文章
- Mysql net start mysql启动,提示发生系统错误 5 拒绝訪问 解决之道
- 【MySQL高级】Mysql锁问题
- 【MySQL高级】MySql中常用工具及Mysql 日志
- mysql远程连接 Host * is not allowed to connect to this MySQL server
- MySQL实战系列3:视图、存储过程、函数、索引全解析
- Mysql 备份和还原
- 【mysql报错】ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
- 【mysql】MySQL的sql_mode模式说明及设置
- 使用navicat连接mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'
- 转发 可设置skip_name_resolve参数 会出现 ERROR 2005 (HY000): Unknown MySQL server host _mysql ...
- MySQL使用索引的场景分析、不能使用索引的场景分析
- mysql高级之存储引擎
- 【MySQL】Spring Boot项目基于Sharding-JDBC和MySQL主从复制实现读写分离(8千字详细教程)
- MySQL存储过程详解 mysql 存储过程
- Mysql_mysql多个TimeStamp设置
- MySQL中的关联查询(内连接,外连接,自连接)
- ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql (转)
- Linux下安装管理mysql数据库
- mysql物理存储(页区段)
- (3.3)mysql基础深入——mysql启动深入分析
- Mysql innodb 间隙锁
- Mysql数据库存储引擎--转
- 【数据库学习】——windows、MySQL构建新闻管理系统(控制台版)
- 使用Springboot+MybatisPlus+Echarts+Mysql从0-1完成中国地图可视化动态展示
- [Mysql] 正则表达式