символ mariadb(250)*20 против текста(5000) для производительности

#mariadb

Вопрос:

У меня есть около 100 миллионов текстов(длина текста 4500~5000). Я собираюсь поместить их в mariadb, и запрос, который я использую, выглядит следующим образом.

 SELECT TT_TEXT FROM TEXT_TABLE WHERE TT_HASH = UNHEX('MD5 HASH');  

Какое исполнение было бы лучше для TEXT_TABLE1 или TEXT_TABLE2? Емкость базы данных не имеет значения. Просто выберите исполнение.

 # TABLE1 CREATE TABLE `TEXT_TABLE1` (  `TT_INDEX` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Index',  `TT_HASH` BINARY(16) NOT NULL COMMENT 'MD5 hash for `TT_TEXT`',  `TT_TEXT` TEXT(5000) NOT NULL COMMENT 'Text for 4500~5000 length', PRIMARY KEY (`TT_INDEX`), UNIQUE KEY (`TT_HASH`) ) ENGINE=InnoDB COMMENT 'Text table';  

против

 # TABLE2 CREATE TABLE `TEXT_TABLE2` (  `TT_INDEX` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Index',  `TT_HASH` BINARY(16) NOT NULL COMMENT 'MD5 hash for `TT_TEXT`',  `TT_TEXT1` CHAR(250) NOT NULL COMMENT 'Text for 4500~5000 length',  ...  `TT_TEXT20` CHAR(250) NOT NULL COMMENT 'Text for 4500~5000 length', PRIMARY KEY (`TT_INDEX`), UNIQUE KEY (`TT_HASH`) ) ENGINE=InnoDB COMMENT 'Text table';  

Комментарии:

1. Ваш второй дизайн стола сделал бы его практически невозможным в использовании. Перестаньте беспокоиться о преждевременной оптимизации и просто используйте правильные принципы проектирования таблиц.

2. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.