У меня есть большая база данных, содержащая слова и их наклоненные формы , например ::
BASIC_FORM ##### INFLECED_FORM
talk ----- talk
talk ----- talking
talk ----- talked
talk ----- talks
paragraph ----- paragraph
paragraph ----- paragraphs
...
Эта база данных, конечно, требует много дискового пространства, как только она содержит 1 миллион записей или более.
Каков наилучший способ «сжать» этот набор данных, то есть уменьшить необходимый объем дискового пространства, пока информация не теряется?
Моя первая идея состояла в том, чтобы создать дополнительный столбец, содержащий количество символов, которые можно скопировать с начала базовой формы. Тогда вам просто нужно сохранить ту часть перекошенной формы, которая отличается, например ::
BASIC_FORM ##### NUM_EQUAL ##### INFLECED_FORM
talk ----- 4 -----
talk ----- 4 ----- ing
talk ----- 4 ----- ed
talk ----- 4 ----- s
try ----- 3 -----
try ----- 2 ----- ied
paragraph ----- 9 -----
paragraph ----- 9 ----- s
...
Это должно сэкономить некоторый объем дискового пространства, так как «NUM_EQUAL» может быть сохранен как TINYINT в MySQL (например), поэтому для него требуется только 1 байт, а в строке «INFLECTED_FORM» вы обычно сохраняете более 1 символа (то есть более чем 1 байт).
Есть ли у вас другие предложения по экономии места на диске?