2015-07-21 2 views
1

У нас есть таблица MySQL, размещенная на сервере Amazon AWS, которая во время запросов несколько раз очень медленная. Я рассматриваю возможность реструктуризации таблицы с лучшими индексами и типами данных столбцов.Ускорить MySQL, который содержит большую таблицу

Вот структура создания таблицы:

SHOW CREATE TABLE export_users; 

+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table  | Create Table                                                                                                                                                                                                                                                              | 
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| exportusers | CREATE TABLE `exportusers` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `UAccountID` varchar(50) CHARACTER SET utf8 NOT NULL, 
    `ApplyURL` text, 
    `CityName` varchar(64) CHARACTER SET utf8 DEFAULT NULL, 
    `ClassList` text, 
    `UCompanyID` varchar(20) DEFAULT NULL, 
    `UContactCompany` varchar(64) CHARACTER SET utf8 DEFAULT NULL, 
    `UContactEmail` varchar(512) CHARACTER SET utf8 DEFAULT NULL, 
    `UContactFax` varchar(32) CHARACTER SET utf8 DEFAULT NULL, 
    `UContactName` varchar(64) CHARACTER SET utf8 DEFAULT NULL, 
    `UContactPhone` varchar(100) CHARACTER SET utf8 DEFAULT NULL, 
    `CountryName` char(2) CHARACTER SET utf8 NOT NULL, 
    `DateCreated` datetime NOT NULL, 
    `DateModified` datetime NOT NULL, 
    `DateSysCreated` datetime NOT NULL, 
    `DateSysModified` datetime NOT NULL, 
    `DegreeCode` varchar(200) DEFAULT NULL, 
    `DegreeCodeDecoded` varchar(512) CHARACTER SET utf8 DEFAULT NULL, 
    `DisplayCity` varchar(64) CHARACTER SET utf8 DEFAULT NULL, 
    `DisplayuserID` varchar(32) CHARACTER SET utf8 DEFAULT NULL, 
    `ExperienceCode` varchar(200) DEFAULT NULL, 
    `ExperienceCodeDecoded` text, 
    `ExternalKey` varchar(32) CHARACTER SET utf8 DEFAULT NULL, 
    `GeoUSZip5` varchar(5) DEFAULT NULL, 
    `HostSite` char(2) CHARACTER SET utf8 NOT NULL, 
    `IndustryCode` varchar(128) CHARACTER SET utf8 DEFAULT NULL, 
    `IndustryCodeDecoded` text, 
    `IsBOFuser` tinyint(1) DEFAULT NULL, 
    `IsDiversityuser` tinyint(1) DEFAULT NULL, 
    `userID` varchar(20) NOT NULL, 
    `userDesc` text, 
    `userFunctionCode` text, 
    `userFunctionCodeDecoded` text, 
    `userReq` text, 
    `userSkinDID` varchar(20) DEFAULT NULL, 
    `userTitle` varchar(128) CHARACTER SET utf8 DEFAULT NULL, 
    `userType` varchar(512) CHARACTER SET utf8 DEFAULT NULL, 
    `userTypeDesc` text, 
    `userTypeCodeDecoded` text, 
    `Latitude` decimal(10,5) DEFAULT NULL, 
    `Longitude` decimal(10,5) DEFAULT NULL, 
    `Location` varchar(70) CHARACTER SET utf8 DEFAULT NULL, 
    `ManagementCode` varchar(20) CHARACTER SET utf8 DEFAULT NULL, 
    `MaximumExp` int(11) DEFAULT NULL, 
    `MinimunExp` int(11) DEFAULT NULL, 
    `Onet` varchar(10) DEFAULT NULL, 
    `OnetTitle` text, 
    `BeginDate` datetime NOT NULL, 
    `EndDate` datetime NOT NULL, 
    `PayBaseH` decimal(10,2) DEFAULT NULL, 
    `PayBaseL` decimal(10,2) DEFAULT NULL, 
    `PayBonus` decimal(10,2) DEFAULT NULL, 
    `PayComm` decimal(10,2) DEFAULT NULL, 
    `PayOther` varchar(64) CHARACTER SET utf8 DEFAULT NULL, 
    `PayPer` varchar(8) DEFAULT NULL, 
    `PayType` char(3) DEFAULT NULL, 
    `PostalCode` varchar(10) DEFAULT NULL, 
    `PostingPath` varchar(20) NOT NULL, 
    `Relocate` tinyint(1) DEFAULT NULL, 
    `RelocateOptions` varchar(5) DEFAULT NULL, 
    `ScreenerID` varchar(20) DEFAULT NULL, 
    `SiteID` varchar(1024) CHARACTER SET utf8 DEFAULT NULL, 
    `SliceList` text, 
    `StateName` char(30) CHARACTER SET utf8 DEFAULT NULL, 
    `Status` varchar(50) NOT NULL, 
    `TextPay` varchar(40) CHARACTER SET utf8 DEFAULT NULL, 
    `TotalPay` decimal(10,2) DEFAULT NULL, 
    `TownName` varchar(100) CHARACTER SET utf8 DEFAULT NULL, 
    `TravelCode` varchar(200) DEFAULT NULL, 
    `TravelCodeDecoded` text, 
    `UpgradeList` varchar(64) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    KEY `index_jobs_on_UAccountID` (`UAccountID`), 
    KEY `index_jobs_on_CountryName` (`CountryName`), 
    KEY `index_jobs_on_DateCreated` (`DateCreated`), 
    KEY `index_jobs_on_DateModified` (`DateModified`), 
    KEY `index_jobs_on_DateSysCreated` (`DateSysCreated`), 
    KEY `index_jobs_on_DateSysModified` (`DateSysModified`), 
    KEY `index_jobs_on_HostSite` (`HostSite`), 
    KEY `index_jobs_on_userID` (`userID`), 
    KEY `index_jobs_on_BeginDate` (`BeginDate`), 
    KEY `index_jobs_on_EndDate` (`EndDate`), 
    KEY `index_jobs_on_PostingPath` (`PostingPath`), 
    KEY `index_jobs_on_Status` (`Status`) 
) ENGINE=InnoDB AUTO_INCREMENT=7907436 DEFAULT CHARSET=utf8mb4 | 
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.27 sec) 
+0

Сколько строк? Как вы идете за данными (список 3 основных пути, включая комбо/композит). Как часто вы вставляете/обновляете? Каковы ваши спецификации AWS – Drew

+2

Вы пропустили, чтобы включить запрос ;-) – Stefan

+0

Если бы был только один запрос, у него не было бы всех этих КЛЮЧЕЙ сейчас? @Stefan – Drew

ответ

1

Рассмотрим Normalization вашей схемы. Прерывание того, что один очень большой объект во много меньших связанных сущностях будет иметь наибольшее влияние на вашу скорость запросов.

Нормализация включает в себя разложение таблицы на менее избыточные (и меньшие) таблицы, но без потери информации; определение внешних ключей в старой таблице, ссылающихся на первичные ключи новых. Цель состоит в том, чтобы изолировать данные, чтобы добавления, удаления и модификации атрибута могли быть сделаны только в одной таблице, а затем распространены через остальную базу данных с использованием определенных внешних ключей.

Смежные вопросы