【发布时间】:2010-09-06 18:18:35
【问题描述】:
对于我们的应用程序,我们保留了由三个整数列(源、类型和时间)索引的大量数据。加载大量数据可能需要一些时间,我们已经实施了各种措施来减少必须搜索和加载更大查询的数据量,例如为不需要高分辨率的查询存储更大的粒度(时间-明智的)。
在我们的备份存档中搜索数据时,其中数据存储在 bzip 压缩文本文件中,但结构基本相同,我注意到解压缩到标准输出并通过 grep 管道比解压缩到它要快得多磁盘和 grep 文件。事实上,untar-to-pipe 甚至比仅 grep 未压缩的文件(即折扣 untar-to-disk)要快得多。
这让我想知道磁盘 I/O 对性能的影响是否真的比我想象的要严重得多。所以这是我的问题:
您是否认为将多行的数据放入单行的(压缩)blob 字段并在提取过程中动态搜索单行可能比通过表索引搜索相同的行更快?
例如,不用这张表
CREATE TABLE data ( `source` INT, `type` INT, `timestamp` INT, `value` DOUBLE);
我会的
CREATE TABLE quickdata ( `source` INT, `type` INT, `day` INT, `dayvalues` BLOB );
quickdata 中的每一行大约有 100-300 行数据,并在 blob 字段的解压缩和解码期间动态搜索所需的时间戳。
这对你有意义吗?我应该调查哪些参数?可能附加什么条件?有哪些 DB 功能(任何 DBMS)可以实现类似的效果?
【问题讨论】:
标签: database performance