編輯:所以查詢確實有效,但在我的本地主機上運行花了一分鐘。無可否認,我的本地主機上的表格(每個表格大約有8000行)相當大,但在生產中,表格每個可以有25,000行以上。有沒有什麼辦法可以優化這個,所以不需要太長時間?正如其中一條評論所指出的那樣,兩個表都被編入索引。爲什麼這會在phpMyAdmin中拒絕完成外連接查詢?
我有兩個表,jos_eimcart_customers_addresses和jos_eimcart_customers。我想從客戶表中提取所有記錄,並在地址表中包含可用的地址信息。我有我認爲是一個相當普通的左外連接查詢,但它保持超時在phpMyAdmin,即使沒有那麼多結果應該找到。任何人都可以指出我是否做錯了什麼?我沒有收到mySQL錯誤。
select
c.firstname,
c.lastname,
c.email as customer_email,
a.email as address_email,
c.phone as customer_phone,
a.phone as address_phone,
a.company,
a.address1,
a.address2,
a.city,
a.state,a.zip,
c.last_signin
from jos_eimcart_customers c
left outer join jos_eimcart_customers_addresses a
on c.id = a.customer_id
order by c.last_signin desc
哪些表的大小(行)?有沒有索引? – JoshD 2010-10-21 19:33:34
兩者都被編入索引,並且兩個表都沒有超過100行。 – EmmyS 2010-10-21 19:37:28
看起來這個查詢實際上已經崩潰了我們的數據庫服務器,即使它處理了已經索引的非常小的表。我有更復雜的查詢運行在更大的表上,所以這個特定的表有什麼問題? – EmmyS 2010-10-21 19:46:18