2011-07-04 81 views
0

我的數據方案是非常簡單的,令s說這是關於農場提高SELECT SQL查詢

  • TABLEA是主要原因之一,與 重要領域「IS_ACTIVE」假設 農場是可信的(種)
  • tableB的是 序列化陣列的數據存儲有關農場 統計

我想檢索有關活動場中的所有數據,所以我就做這樣的事情:

SELECT * FROM tableA LEFT JOIN tableB ON id_tableA=id_tableB WHERE is_active=1 ORDER BY id_tableA DESC; 

眼下查詢需要15秒,從SQL外殼直執行,例如它,我想檢索來自tableB的所有數據,如:

SELECT * FROM tableB ORDER BY id_tableB DESC; 

只需不到1秒(約1200行)...

任何想法如何提高原始查詢?

THX

回答

2

你必須創建一個索引。

您可以創建以下指標:

的mysql> TableA上創建索引ix_a_active_id(id_tableA,IS_ACTIVE);

mysql>在tableB(id_tableB)上創建索引ix_b_id;

這首先創建兩者上的id +是活性可變的索引。 第二個在tableB的id上創建一個索引。

+0

是否有一個mysql命令可以顯示,如果我已經有一個主鍵或其他領域的索引?它是否出現在描述表上? – krifur

+1

顯示來自tableA的索引; – Eljakim