從XML文件導入到一個WordPress數據庫。我將城鎮和地點作爲每個帖子的元值進行導入。如何優化這個WordPress的mysql查詢?
我沒有城鎮和位置的predefind名單,所以我需要得到所有位置(容易的事情)和(這裏的具有1M的問題)得到這些位置中的所有城鎮
查詢,我現在是:
SELECT t1.meta_value
FROM wp_postmeta t1
INNER JOIN wp_postmeta t2 ON (t1.post_id = t2.post_id)
WHERE t2.meta_key = '_prop_loc'
AND t2.meta_value="Málaga"
AND t1.meta_key = '_prop_town'
GROUP BY t1.meta_value
例如,如果我試圖讓所有的城鎮在「馬拉加」位置我結束使用此查詢。測試它在本地主機查詢運行
showing records 0 - 29 (101 total, total time 1.3289 seg)
如果我拿出組的時間減少,但當然我得到重複的行。如果我使用與ASC訂單不同的選擇,則時間再次增加。
我也想有結果排序的,但超過一秒鐘的查詢是不正常
wp_postmeta
表:
CREATE TABLE `wp_postmeta` (
`meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) DEFAULT NULL,
`meta_value` longtext,
PRIMARY KEY (`meta_id`),
KEY `post_id` (`post_id`),
KEY `meta_key` (`meta_key`)
) ENGINE=*** DEFAULT CHARSET=utf8;
或許有用:HTTP:/ /www.wikyblog.com/AmanKing/GROUP_BY_in_MySQL_does_implicit_ordering http://stackoverflow.com/questions/5231907/order-by-null-in-mysql – biziclop 2013-03-16 23:07:03
但我想結果排序。使用group by給了我正確的順序。使用「select distinc」+ order by給我正確的順序。這兩種方式都很慢(查詢1s + – chifliiiii 2013-03-16 23:22:39
你在桌上有什麼索引? – 2013-03-16 23:36:41