以下查詢花費很長時間才能運行,最終只是超時。我查看了EXPLAIN計劃,似乎並沒有使用我的一張表的索引,所以我認爲這與它有關,儘管我不知道爲什麼會發生這種情況。這裏的查詢:LEFT JOIN查詢速度很慢
SELECT documentID
, coID
, suiteID
, leaseID
, assetID
, vendorID
, feed_documents.did
, document_links.doid
FROM feed_documents
LEFT
JOIN document_links
ON feed_documents.did = document_links.doid
WHERE doid IS NULL
LIMIT 0, 75000
而這裏的解釋結果:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE feed_documents ALL NULL NULL NULL 119363 NULL NULL
1 SIMPLE document_links ref doid doid 4 rladmin_rlhpsi.feed_documents.did 12 Using where; Not exists; Using index
的feed_documents表對所有選擇/連接列的索引,並document_links對所有列的索引。有人能看到我在這裏做錯了嗎?
UPDATE:表定義,請求。
CREATE TABLE `feed_documents` (
`documentID` int(11) NOT NULL DEFAULT '0',
`documentTitle` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`documentFileName` varchar(500) COLLATE utf8_unicode_ci DEFAULT NULL,
`documentDate` datetime DEFAULT NULL,
`documentArchived` int(11) DEFAULT NULL,
`documentTypeID` int(11) DEFAULT NULL,
`coID` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`suiteID` int(11) DEFAULT NULL,
`leaseID` int(11) DEFAULT NULL,
`assetID` int(11) DEFAULT NULL,
`vendorID` int(11) DEFAULT NULL,
`did` int(11) DEFAULT NULL,
PRIMARY KEY (`documentID`),
KEY `coID` (`coID`),
KEY `suiteID` (`suiteID`),
KEY `leaseID` (`leaseID`),
KEY `assetID` (`assetID`),
KEY `vendorID` (`vendorID`),
KEY `did` (`did`),
KEY `documentTypeID` (`documentTypeID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
CREATE TABLE `document_links` (
`dlid` int(11) NOT NULL AUTO_INCREMENT,
`daid` int(11) NOT NULL COMMENT 'Dataset ID',
`linkid` int(11) NOT NULL COMMENT 'ID value of linked item',
`doid` int(11) NOT NULL COMMENT 'Document ID',
PRIMARY KEY (`dlid`),
KEY `daid` (`daid`),
KEY `linkid` (`linkid`),
KEY `doid` (`doid`)
) ENGINE=MyISAM AUTO_INCREMENT=148767 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
請出示的'秀創建表feed_documents輸出;'和'顯示創建表document_links;'。 – Asaph
'explain'看起來很合理 - 在第二張表上做索引查找。 'select'中不需要'document_links.doid'字段,但這可能不是問題。也許某些其他進程在表上存在鎖,影響了查詢性能。 –
主要,獨特和索引如何? – EngineerCoder