mysql怎么建立图片表 mysql数据库中添加图片路径如何添加

mysql中城市表,地区表和图片表,要求一个城市下面有很多地区,一个地区下面有很多图片,请问怎么建表城市表mysql怎么建立图片表,地区表(含外键 , 即城市表mysql怎么建立图片表的主键),图片表(含外键,即地区表的主键)
如何向MySQL中插入图片文件背景
MySQL 一直以来都有 TEXT、BLOB 等类型用来存储图片、视频等大对象信息 。比如一张图片mysql怎么建立图片表,随便一张都 5M 以上 。视频也是,随便一部视频就是 2G 以上 。
假设用 MySQL 来存放电影视频等信息,一部是 2G,那么存储 1000 部就是 2TB,2TB 也就是 1000 条记录而已,但是对数据库性能来说,不仅仅是看记录数量,更主要的还得看占用磁盘空间大小 。空间大了,所有以前的经验啥的都失效了 。
所以一般来说存放这类信息 , 也就是存储他们的存放路径,至于文件本身存放在哪里 , 那这就不是数据库考虑的范畴了 。数据库只关心怎么来的快 , 怎么来的小 。
举例
虽然不推荐 MySQL 这样做,但是也得知道 MySQL 该怎么做才行,做到心里有数 。比如下面一张微信图片,大概 5M 的样子 。
root@ytt:/var/lib/mysql-files# ls -sihl 微信图片_20190711095019.jpg274501 5.4M -rw-r--r-- 1 root root 5.4M Jul 11 07:17 微信图片_20190711095019.jpg
拷贝 100 份这样的图片来测试
root@ytt:/var/lib/mysql-files# for i in `seq 1 100`; do cp 微信图片_20190711095019.jpg "$i".jpg;done;
root@ytt:/var/lib/mysql-files# ls
100.jpg17.jpg25.jpg33.jpg41.jpg4.jpg58.jpg66.jpg74.jpg82.jpg90.jpg99.jpgf8.tsv
10.jpg18.jpg26.jpg34.jpg42.jpg50.jpg59.jpg67.jpg75.jpg83.jpg91.jpg9.jpg微信图片_20190711095019.jpg
1111.jpg19.jpg27.jpg35.jpg43.jpg51.jpg5.jpg68.jpg76.jpg84.jpg92.jpgf1.tsv
11.jpg1.jpg28.jpg36.jpg44.jpg52.jpg60.jpg69.jpg77.jpg85.jpg93.jpgf2.tsv
12.jpg20.jpg29.jpg37.jpg45.jpg53.jpg61.jpg6.jpg78.jpg86.jpg94.jpgf3.tsv
13.jpg21.jpg2.jpg38.jpg46.jpg54.jpg62.jpg70.jpg79.jpg87.jpg95.jpgf4.tsv
14.jpg22.jpg30.jpg39.jpg47.jpg55.jpg63.jpg71.jpg7.jpg88.jpg96.jpgf5.tsv
15.jpg23.jpg31.jpg3.jpg48.jpg56.jpg64.jpg72.jpg80.jpg89.jpg97.jpgf6.tsv
16.jpg24.jpg32.jpg40.jpg49.jpg57.jpg65.jpg73.jpg81.jpg8.jpg98.jpgf7.tsv
mysql怎么建立图片表我们建三张表 , 分别用 LONGBLOB、LONGTEXT 和 VARCHAR 来存储这些图片信息
mysql show create table tt_image1G
*************************** 1. row ***************************
Table: tt_image1
Create Table: CREATE TABLE `tt_image1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`image_file` longblob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql show create table tt_image2G
*************************** 1. row ***************************
Table: tt_image2
Create Table: CREATE TABLE `tt_image2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`image_file` longtext,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql show create table tt_image3G
*************************** 1. row ***************************
Table: tt_image3
Create Table: CREATE TABLE `tt_image3` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`image_file` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql怎么建立图片表我们来给三张表插入 100 张图片(插入前,建议把 max_allowed_packet 设置到最大)
tt_image1
root@ytt:/var/lib/mysql-files# for i in `seq 1 100`;
do mysql -S /var/run/mysqld/mysqld.sock -e "insert into ytt.tt_image1(image_file)
values (load_file('/var/lib/mysql-files/$i.jpg'))";done;

推荐阅读