添加這是MySQL表結構的記錄,我有MySQL的:由<em>X</em>用戶ID</p> <pre><code>itemID (BIGINT) userID (BIGINT) wasAdded (DATETIME) </code></pre> <p>我需要在當天推出的項目數,:最有效的方法來算今天
什麼是最有效的方法來做到這一點?
感謝
添加這是MySQL表結構的記錄,我有MySQL的:由<em>X</em>用戶ID</p> <pre><code>itemID (BIGINT) userID (BIGINT) wasAdded (DATETIME) </code></pre> <p>我需要在當天推出的項目數,:最有效的方法來算今天
什麼是最有效的方法來做到這一點?
感謝
,最好的辦法是添加覆蓋userID
和wasAdded
索引,那麼你可以做
SELECT COUNT(*) FROM my_table WHERE userID = 'X' AND wasAdded BETWEEN CONCAT(CURDATE(), ' ', '00:00:00') AND CONCAT(CURDATE(), ' ', '23:59:59');
這不應該甚至需要從表中讀取,如它需要的所有數據都在索引中。
這應該做的伎倆:
SELECT COUNT(itemID) FROM 'tableName' WHERE TO_DAYS(wasAdded) = TO_DAYS(NOW()) AND userID = X
但是,一定要對wasAdded
和userID
指數!
如果您使用TO_DAYS,您確定MySQL能夠使用wasAdded上的索引嗎?如果你認爲它會,我會有興趣閱讀參考文獻 – Greg 2009-01-21 17:29:35