考慮一個網站,其中人們對他們最喜歡的顏色進行投票(+1)或向下(-1),我有兩個表格:哪個是最有效的SELECT方法,爲什麼?
其中一個列出了所有人可以投票的顏色,第二個表格記錄每個人的投票製造,是什麼顏色,是否是+1或-1。
至於獲取的總投給一個特定的顏色,這將是更有效的包括在顏色表的總分而當一個人投票有一個INSERT語句和UPDATE語句:
INSERT INTO votes (colour,vote) VALUES (red,-1);
UPDATE colours SET score=score-1 WHERE colour='red';
SELECT score FROM colours WHERE colour='red';
或者在進行投票時只有一個INSERT語句,然後獲取分數,會更有效率嗎?
SELECT SUM(vote) AS score FROM votes WHERE colour='red';
我想,當有票的極少數然後選擇#2是最好的,但它的選擇#1變得更好,當票數表非常大?
是否有一些工具可以用來根據表格大小等對某些SQL查詢進行排序?
啊,道歉。忘了提及記錄個人投票的表格是必需的,所以無論我選擇什麼選項,表格都需要在那裏。 – Alwayslearning 2013-03-08 10:13:50
你希望你的桌子有多大? *會*是一個超過該值的點,SUM()會明顯變慢。 – 2013-03-08 10:20:46