У меня есть база данных MySQL, содержащая много текста, я беру данные с веб-сайта и вставляю их в таблицу.
Я использую SSD HD (100 ГБ) для БД, и мне не хватает места, я думаю, что что-то в структуре таблицы сделало ее слишком большой, я не могу предсказать размер всех столбцов, поэтому я использую varchar \ text \ medium text для большинства полей. когда я вставляю все данные в БД, я отслеживаю ошибки, и когда я вижу, что определенное поле слишком мало для данных, которые я пытаюсь вставить, я увеличиваю размер поля (например, с varchar (1000) до varchar (2000)).
до сих пор у меня около 1,8 млн ~ строк, я думаю, что что-то делаю не так.
вот структура моей таблицы -
CREATE TABLE `PT` (
`patID` int(11) NOT NULL,
`Title` varchar(450) DEFAULT NULL,
`IssueDate` date DEFAULT NULL,
`NoFullText` tinyint(1) DEFAULT NULL,
`Abstract` text,
`ForeignReferences` varchar(15000) DEFAULT NULL,
`CurrentUSClass` varchar(2200) DEFAULT NULL,
`OtherReferences` mediumtext,
`ForeignPrio` varchar(900) DEFAULT NULL,
`CurrentIntlClass` varchar(3000) DEFAULT NULL,
`AppNum` varchar(45) DEFAULT NULL,
`AppDate` date DEFAULT NULL,
`Assignee` varchar(300) DEFAULT NULL,
`Inventors` varchar(1500) DEFAULT NULL,
`RelatedUSAppData` text,
`PrimaryExaminer` varchar(100) DEFAULT NULL,
`AssistantExaminer` varchar(100) DEFAULT NULL,
`AttorneyOrAgent` varchar(300) DEFAULT NULL,
`ReferencedBy` text,
`AssigneeName` varchar(150) DEFAULT NULL,
`AssigneeState` varchar(80) DEFAULT NULL,
`AssigneeCity` varchar(150) DEFAULT NULL,
`InventorsName` varchar(800) DEFAULT NULL,
`InventorsState` varchar(300) DEFAULT NULL,
`InventorsCity` varchar(800) DEFAULT NULL,
`Claims` mediumtext,
`Description` mediumtext,
`InsertionTime` datetime NOT NULL,
`LastUpdatedOn` datetime NOT NULL,
PRIMARY KEY (`patID`),
UNIQUE KEY `patID_UNIQUE` (`patID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
что я должен делать? У меня около 20% данных (что означает, что мне понадобится 350 ГБ ~ места), как это влияет на производительность? мне следует разделить таблицу на несколько таблиц по нескольким HD? Я собираюсь использовать sphinx для индексации и запроса данных в конце.