【发布时间】:2015-05-29 22:07:09
【问题描述】:
我的数据库中有两个大致如下所示的表:
通讯:(拨打电话)
Timestamp FromIDNumber ToIDNumber GeneralLocation
2012-03-02 09:02:30 878 674 Grasslands
2012-03-02 11:30:01 456 213 Tundra
2012-03-02 07:02:12 789 654 Mountains
运动:
Timestamp IDNumber Type X Y
2012-03-02 11:02:30 379 pedestrian 32 46
2012-03-01 12:32:41 654 pedestrian 54 56
2012-03-02 07:02:16 789 pedestrian 39 52
我想运行这个查询:
SELECT c.senderID, c.timestamp, m.timestamp, m.x, m.y
FROM communication c
JOIN movement m
ON c.senderID = m.visitorID
WHERE m.timestamp >= c.timestamp
ORDER BY m.timestamp LIMIT 1;
基本上,我想找到最接近给定通信时间戳的移动时间戳。
问题是,这些表有数百万个条目,我需要使用索引。问题是,我是 SQL 新手,我不确定如何构建我的索引......我需要像这样分别为 m.timestamp 和 c.timestamp 设置一个吗?
CREATE INDEX mtstamp ON DBName.movement (timestamp);
CREATE INDEX ctstamp ON DBName.communication (timestamp);
任何帮助将不胜感激,谢谢!
【问题讨论】:
标签: mysql sql indexing phpmyadmin