我如何在拥有超过 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
索引在所有列上完成
编辑以反映急剧改变的问题...
这不是做同样的事情吗:
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
?
索引 on (callerid,date( 可能很有用。
另请参阅关于 SQL 注入。