NodeJS MySQL blob上传速度慢-使用NodeJS缓冲区绕过MySQL blob转换过程

toiithl6  于 2023-05-21  发布在  Mysql
关注(0)|答案(1)|浏览(127)

我正在上传一些图片到MySQL中的一个blob,但每次上传都很慢。我尝试上传纯文本与在上传之前将文本转换为缓冲区,这两种方式看起来都和另一种一样慢,但我有一种感觉,转换更快。我正在使用NodeJS,并在客户端上传fileReader结果值。有什么方法可以让我在服务器上上传得更快吗?我在想,如果我插入缓冲区,MySQL blob将能够读取正在插入的缓冲区,并且不会试图将其转换为字符串。有没有办法绕过MySQL blob的转换过程,这样我就可以更快地上传?还是转换发生得很快,是其他什么东西减慢了插入速度?

if(req.body.product_images.length == 0) { 
    req.body.product_images = null;
  } else {
    req.body.product_images = req.body.product_images.join('***img_separator***'); //string upload
    req.body.product_images = Buffer.from(req.body.product_images, 'utf-8'); //buffer upload 
  }
yizd12fk

yizd12fk1#

UTF-8??图像是 * 非 * 字符;它是BLOBBINARY,并且需要不同地处理。也许传递图像的最佳方式是通过Base64。
如果图像用于网页,则不要将其放入数据库。相反,将其存储在文件中,并将其URL存储在数据库中。然后在HTML中构建<img src=...>,以便在加载时引用它。

不透明字符串

从数据库的Angular 来看:你有一个'opaque'字节串。数据库不需要关心它里面有什么,所以你只需要最有效的插入/获取方式。BLOB(或者MEDIUMBLOB)就可以了。
如果使用TEXTCHARACTER SET ascii将是最佳的,COLLATE ascii_bin将是最佳的,适合于BASE64。

相关问题