我在数据库中有一个表有7k以上的记录。我有一个查询在该表中搜索特定的id。(id是自动递增的)
查询就像这样 - >
select id,date_time from table order by date_time DESC;
此查询将对该7k +数据执行所有搜索.......无论如何我无法优化此查询,以便仅在500或1000条记录上进行搜索....记录将逐日增加,我的查询将变得越来越重。任何建议?????
答案 0 :(得分:2)
我不知道我是否在这里遗漏了什么,但是错误的是:
select id,date_time from table where id=?id order by date_time DESC;
和?id是您要搜索的ID的编号...
当然,id应该是主要索引。
答案 1 :(得分:1)
如果id
是唯一的(可能是您的主键),那么您不需要按date_time
进行搜索,并且保证最多只返回一行。
SELECT id, date_time FROM table WHERE id=<value>;
如果id
不唯一,那么您仍然使用相同的查询但需要查看数据库外的索引,其他约束和/或缓存,如果查询变得太多慢。