2015-07-21 33 views
1

我們有一個託管在Amazon AWS服務器上的MySQL表,它在查詢時有時非常慢。我正在考慮用更好的索引和列數據類型來重構表格。加快包含大型表的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

如果只有一個查詢,他現在不會擁有所有這些KEYS? @Stefan – Drew

回答

1

考慮您的架構的Normalization。將一個非常大的實體分解爲更小的相關實體將對您的查詢速度產生最大影響。

規範化包括將表分解爲較少冗餘(和較小)的表,但不會丟失信息;在舊錶中定義引用新鍵的主鍵的外鍵。目標是隔離數據,以便可以在一個表中添加,刪除和修改屬性,然後使用定義的外鍵在數據庫的其餘部分傳播。