我有一个名为clicks的表,它记录了网站周围的鼠标点击。该模式是这样的:涉及同一列的多个索引是否有用?
有此数据运行的3个主要的疑问:
- “SELECT *中,pageid = XXXX”
- “SELECT * WHERE visitorid = xxx和pageid = xxxx“
- ”SELECT visitorid,MIN(time)AS mintime WHERE pageid = xxxx GROUP BY visitorid“
未来我也可能在查询中使用maintestid。因此,这看起来像:
- “SELECT * WHERE maintestid = XXXX”
所以我加2个索引表中的这两个,象这样的主键一起查询:
我有3个问题:
这个主键有用吗?或者我应该只让它成为ID列?
pageid索引是否有用?或者,如果pageid的所有查询都由pageid_visid索引处理,它会一样快吗?
当我想在未来通过maintestid进行搜索时,我应该在maintestid列上添加一个索引还是其他的东西?
“这将是更好,如果你只有一个ID为主要因为它是比较合适的” - 你所说的“多指什么适当”? – onedaywhen 2012-02-29 10:05:07