如何运行超过1000万的选择mysql命令仍在增加

时间:2018-06-06 09:13:47

标签: mysql

如何在具有超过1000万条记录且每秒仍在增长的表格上更快地运行此mysql select命令。

"SELECT 
    date,ip,time,messagetype,username,nasip,
    failurecode,callerid,authordata,cmd,groupname 
FROM (SELECT * 
      FROM " . $tableName . " 
      WHERE callerid NOT LIKE '10.%') AS T1 
WHERE date BETWEEN '" . $date_back . "' AND '" . $date . "' 
      AND callerid <> '-' 
ORDER BY time DESC"

表中的当前记录数为13267701

对所有列进行索引

1 个答案:

答案 0 :(得分:3)

编辑反映戏剧性改变的问题......

这不是同样的事情:

SELECT date
     , ip
     , time
     , messagetype
     , username
     , nasip
     , failurecode
     , callerid
     , authordata
     , cmd
     , groupname 
  FROM $tableName 
 WHERE callerid NOT LIKE '10.%'
   AND date BETWEEN '$date_back' AND '$date'
   AND callerid <> '-' 
 ORDER 
    BY time DESC

(callerid,date)上的索引可能很有用。

另外,请参阅sql注入。