我有一个巨大的mysql数据库,其中包含10000000条记录。
简而言之,我的三个专栏是
身份证件
,
日期
和
时间
,我在id和date上有几个索引(
身份证、日期、身份证和日期
)所以join上没有性能问题
select id, max(date) as last_record from mytable where date < "2010-01-02"
mytable
/--------------------------------\
| ID | date | time |
|--------+--------------+--------|
| 1 | 2009-01-01 | 15 |
|--------+--------------+--------|
| 1 | 2009-01-03 | 14 |
|--------+--------------+--------|
| 2 | 2009-01-01 | 18 |
|--------+--------------+--------|
| 2 | 2009-01-02 | 12 |
|--------+--------------+--------|
| 2 | 2009-01-02 | 15 |
\--------+--------------+--------/
结果是:
/-----------------------\
| ID | last_record |
|--------+--------------|
| 1 | 2009-01-03 |
|--------+--------------|
| 2 | 2009-01-02 |
\--------+--------------/
改进问题:
现在我想让这个查询告诉我
时间
按分组方式选择的记录,例如:
/--------------------------------\
| ID | last_record | time |
|--------+--------------+--------|
| 1 | 2009-01-03 | 14 |
|--------+--------------+--------|
| 2 | 2009-01-02 | 15 |
\--------+--------------+--------/
我需要一些主意来做这个!
编辑:(更多信息)
我想知道我所有身份证的最后记录和记录时间