Brent Asked: 2009-07-03 11:56:30 +0800 CST2009-07-03 11:56:30 +0800 CST 2009-07-03 11:56:30 +0800 CST MySQL 是否可以选择压缩缓存中的数据? 772 今天早上我被介绍了压缩数据库缓存的概念,以便在给定数量的 RAM 中允许更大的缓存。我了解 Microsoft SQL 2008 提供了此功能。 我想知道 MySQL 是否有类似的功能可用? mysql cache database compression 2 个回答 Voted Best Answer pQd 2009-07-03T12:29:59+08:002009-07-03T12:29:59+08:00 我害怕它没有。 它可以在复制时压缩数据... .. 并且有新的innodb 存储插件可以进行数据压缩。 但不是在内存中。据我所知。 但是,如果您处理 blob - 只需将它们压缩存储 [使用mysql 函数甚至您的外部应用程序] - 我在其中一个项目中进行。通过这种方式,缓存在内存中并存储在磁盘上的数据被压缩;在我的情况下,它是应用层解压缩它的角色。 MarkR 2009-07-03T13:59:19+08:002009-07-03T13:59:19+08:00 它取决于发动机。每个引擎都实现自己的缓存(除非您计算查询缓存,这在大多数情况下并不是真正有用的)。 使用压缩并拥有自己的块缓存系统的引擎,例如 InnoDB-plugin 或 Falcon,可能会自动执行此操作。那是因为它们以块存储在磁盘上的格式缓存,这意味着压缩。 HEAP(内存中)引擎不做压缩(事实上,标准的 HEAP 引擎效率很低,它不支持变长行) 使用操作系统缓存的引擎将以它们将数据保存在磁盘上的任何形式进行缓存,例如,存档引擎(使用磁盘压缩)因此会将压缩块保存在操作系统的缓存中。
我害怕它没有。
它可以在复制时压缩数据...
.. 并且有新的innodb 存储插件可以进行数据压缩。
但不是在内存中。据我所知。
但是,如果您处理 blob - 只需将它们压缩存储 [使用mysql 函数甚至您的外部应用程序] - 我在其中一个项目中进行。通过这种方式,缓存在内存中并存储在磁盘上的数据被压缩;在我的情况下,它是应用层解压缩它的角色。
它取决于发动机。每个引擎都实现自己的缓存(除非您计算查询缓存,这在大多数情况下并不是真正有用的)。
使用压缩并拥有自己的块缓存系统的引擎,例如 InnoDB-plugin 或 Falcon,可能会自动执行此操作。那是因为它们以块存储在磁盘上的格式缓存,这意味着压缩。
HEAP(内存中)引擎不做压缩(事实上,标准的 HEAP 引擎效率很低,它不支持变长行)
使用操作系统缓存的引擎将以它们将数据保存在磁盘上的任何形式进行缓存,例如,存档引擎(使用磁盘压缩)因此会将压缩块保存在操作系统的缓存中。