我的表格中有210列,大约有10000行。每行都是唯一的,并且表上有一个主键。事情是,我们总是不得不选择表上的所有查询来获取所有站点的数据。
当前,问题在于这需要花费太多时间,返回的数据大约为10mb,将来还会很大。
该表中包含varchar,文本和日期类型。
有什么办法可以修改结构或某些东西来使检索更快。更多索引或分解表。 (尽管我认为非规范化数据很适合检索)
更新:“ 为什么宽表会降低查询性能?”
谢谢..
答案 0 :(得分:2)
为什么宽表会降低查询性能?
InnoDB以不同的方式存储“宽”表。它执行以下操作,而不是将所有列都放在一个字符串中(加上开销,例如长度等),
ROW_FORMAT
。SELECT *
(或至少获取未记录的列)时,它必须再次进行磁盘提取。该怎么办?
TEXT
列的表。建议根据应用程序中的访问模式来选择列组。BLOB
而不是TEXT
中。大多数“文字”以3:1缩小。斑点的发送与文本相同,但这些压缩的斑点会更小,因此溢出的可能性较小。SELECT
本身。