1.假设有这样的表(忽略细节)
my_log(id varchar(38), other_id varchar(38), insert_time datetime)
id
是uuid,other_id
是某些分类id,区分度不高。
但是这个表有百万级的数据量,一般的查询比较条件是other_id
和insert_time
,
比如:
select * from my_log
where other_id = 'xxx'
order by insert_time desc limit 1
2.请问我应该怎么优化查询
是否应该建索引
区分度不高,这个得看了。分类的话,有几个分类。如果说,有十个分类。一千万条。原则上就可以剔除了90%无用的扫描。好吧,虽然还有一百万条。但是至少是看得见的。另一个时间,是一定得建的。
如果是other_id和insert_time都同时查的话,问题不大。
建一个联合索引key other_insert(other_id,insert_time)
time肯定是筛选大的,类似给出来的sql也能加快速度。