1
该表包含1.2mill结果,我无法编辑它,因为有些应用程序我没有源代码来访问它。我想添加一个数量字段,但我不能。大表查询优化(mysql)
这里是我使用的查询:
SELECT SUM(assets.hourlyEarnings) as earnings,
assets_inventory.uid
FROM (assets)
JOIN assets_inventory ON assets.id = assets_inventory.assetID
WHERE assets_inventory.uid IN (SELECT users.uid
FROM users
WHERE users.assetTime < 1305350756)
GROUP BY uid
有很多重复的记录。
下面是表:
CREATE TABLE IF NOT EXISTS assets_inventory (
id int(11) NOT NULL AUTO_INCREMENT,
uid bigint(20) NOT NULL,
assetID int(11) NOT NULL,
PRIMARY KEY (id),
KEY uid (uid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1231992 ;
平均而言,我服用6-7秒拉的结果,任何建议加快这将不胜感激!
哎呀,让我试试其他2 – 2011-05-14 06:01:30
@Matt Dunbar:你真的需要使用BIGINT吗?数据类型的字节数越少(当前为8,INT为4),查询就会越快。 – 2011-05-14 06:09:39
不幸的是,它基于Facebook用户ID,它比无符号整数大。 – 2011-05-14 06:14:31