我是数据库新手,这个问题与我期望数据库有多聪明有关。这里的“数据库”是指“类似于”MySQL 或 H2(我实际上不知道这两者是否相似,只是它们很流行)。我实际上使用的是 ScalaQuery,所以它从底层数据库中抽象出来。
假设我有一个表,其中包含类型为 (String, Int) 的条目,在 String 条目中有很多冗余。所以我的桌子可能看起来像:
(Adam, 18) (Adam, 24) (Adam, 34) ... 继续 ... (Adam, 3492) (Bethany, 4) (Bethany, 45) ... 继续 ... (Bethany, 2842)
如果我用 H2 存储这个表,它是否会足够聪明地实现“Adam”和“Bethany”重复很多次,并且可以用指向查找表的枚举替换?还是会浪费大量存储空间?
相关:如果 H2 在这方面对字符串很聪明,那么它在双打方面是否也很聪明?在我可能脑死亡的初始表中,我碰巧有很多重复的双字段。
谢谢!