【发布时间】:2012-02-29 16:17:55
【问题描述】:
我有一个名为 clicks 的表,它记录了网站周围的鼠标点击。架构如下所示:
对这些数据运行 3 个主要查询:
- "选择 * WHERE pageid = xxxx"
- "SELECT * WHERE visitorid = xxx AND pageid = xxxx"
- "SELECT visitorid, MIN(time) AS mintime WHERE pageid = xxxx GROUP BY visitorid"
将来我也可能在查询中使用 maintestid。所以这看起来像:
- “选择 * WHERE maintestid = xxxx”
所以我为这两个查询以及主键添加了 2 个索引到表中,如下所示:
我有 3 个问题:
这个主键像这样有用吗?还是应该只将其设为 ID 列?
pageid 索引有用吗?或者如果所有对 pageid 的查询都由 pageid_visid 索引处理,是否会一样快?
以后想通过 maintestid 进行搜索时,是应该只在 maintestid 列上添加索引,还是其他方式?
【问题讨论】: