mysql - 将数据保存在多个文本行与 blob 上,哪个效果更好?

标签 mysql performance

我需要在 MySql 中保存一些数据,这些数据需要超快速检索。由于我们可以在 MySql 中插入的文本数量有限制,所以我将其分成几部分并为它们添加一个序列号。因此,当我获取它们时,我将它们全部获取并合并。这种方法比 blob 更快吗?

最佳答案

如果您的 MEDIUMTEXT/MEDIUMBLOB 是可压缩的,则在客户端对其进行压缩并将其存储到 MEDIUMBLOB 中。普通文本可压缩 3 倍。大多数图像格式不可压缩。

为什么?通过在客户端压缩,您只传输 3MB,而不是 10MB 到/从服务器。在磁盘上存储 3MB 比 10MB 快得多。

压缩将不允许 FULLTEXT。

如果您需要存储超过 16MB,您的分块可能是“正确”的解决方案——出于我们尚未触及的各种原因。

另一种方法是将 10MB 存储在一个文件中,然后将文件名(或 URL,或其他)存储在数据库中的 VARCHAR 中。这有利有弊。这是一个常见的问题。

关于mysql - 将数据保存在多个文本行与 blob 上,哪个效果更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047268/

相关文章:

mysql - 购物卡MYSQL数据库表设计

mysql - 如果/那么语句

php - SQL WHERE 子句中的 IF 和 ELSE

尽管缺少子查询,但 MySQL 更新错误为 "Subquery returns more than 1 row"

c++ - 比函数引用更有效的方法?

C++优化内存读取速度

java - 在什么情况下网络爬虫可能会受到 CPU 限制而不是 IO 限制?

mysql - 删除相似记录时我的 SQL 查询出错

java - Hbase 扫描与 Mapreduce 的动态计算

css - 文本 CSS 渲染性能 : RGBA vs HEX vs OPACITY