如何在具有超过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
对所有列进行索引
答案 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注入。