我的查詢返回數據不爲空的每個字段的音量。加速計數不同
SELECT COUNT(field1) AS field1, COUNT(field2) AS field2, COUNT(field3) AS field3
FROM (
SELECT field1, field2, field3
FROM table1, table2
WHERE table1.id=table2.idt1
ORDER BY table1.id ASC
LIMIT 10000
) AS rq
table1.id是table1的主鍵,table2.idt1是table2的輔助鍵。 此查詢工作得很好,但如果我需要返回每個字段的不同的卷,這樣
SELECT COUNT(DISTINCT(field1)) AS field1, COUNT(DISTINCT(field2)) AS field2, COUNT(DISTINCT(field3)) AS field3
FROM (
SELECT field1, field2, field3
FROM table1, table2
WHERE table1.id=table2.idt1
ORDER BY table1.id ASC
LIMIT 10000
) AS rq
問題開始...查詢正在做的工作,但表演的當然比沒有DISTINCT子句要慢很多。
Table 1和表2是指標與B樹
CREATE INDEX field1_index ON table1 USING btree (field1)
CREATE INDEX field2_index ON table1 USING btree (field2)
CREATE INDEX field3_index ON table2 USING btree (field3)
我如何可以加快這種重複計數的每個字段?也許有更好的索引?
感謝您的幫助
你應該學會使用正確的,明確的'JOIN'語法。 –
'DISTINCT'是***不是***功能 –
做一個連接,然後計算剛剛被那個非常連接重複的行中的不同值的點是什麼?如果不加入就算不算更好? – Tomalak