考虑一个人们对他们最喜欢的颜色投票赞成(+1)或反对(-1)的网站,我有两张桌子:
一个列出人们可以投票的所有颜色,第二个表格记录每个人的投票,它是什么颜色,是+1还是-1。
关于获取特定颜色的总投票,是否更有效地包括颜色表上的总分,当一个人投票时,有一个插入语句和一个更新语句:
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 查询进行排名?