#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. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.