SQLite3-如何加快此SELECT查询的速度?

时间:2018-08-15 19:02:35

标签: sql select sqlite query-optimization

SELECT DISTINCT sid,
    usrname,
    errcode,
    msg,
    DATE,
    TIME
FROM ecode e,
    action a
WHERE e.errcode = a.STATUS LIMIT 250;

我正在开发一种工具来查看服务器日志,但是此查询的速度非常慢,而且我不确定为什么(我对SQL还是很陌生,所以可能是基本的东西)。我正在针对服务器日志数据库运行此查询。 errcode和msg来自ecode表,所有其他属性来自action表(具有约100k条目)。电子代码表包含我们认为错误的某些状态代码的列表。无论我将其限制为25个还是整个表有多少结果,此查询都会花费大约8秒的时间执行,因此我怀疑这是罪魁祸首。我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

确保您在

上具有正确的索引
 table ecode column  errcode 
 table action column status  

(建议),您应使用显式联接sintax

  SELECT DISTINCT sid, usrname, errcode, msg, date, time 
  FROM ecode e
  INNER JOIN  action a ON   e.errcode = a.status 
  LIMIT 250