[請益] SQL 執行問題
之前紀錄點閱率
是另外開某個 table 紀錄所有細節,結構大概是這樣
主 table
main_table
mt_id PK
....
紀錄 table
hits_table
ht_id PK
ht_date 留言時間
ht_ip 留言 IP
mt_id main_table 的 fk
所以以點閱率撈資料的話會是
<?php
$sql = "SELECT mt_label, COUNT(ht_id) AS totalHits FROM main_table LEFT JOIN
hits_table ON main_table.mt_id = hits_table.mt_id GROUP BY hits_table.mt_id
ORDER BY COUNT(ht_id) DESC";
?>
這樣可以根據點閱率排行,並且撈出點閱數量
但隨著時間的經過,點閱率資料已經有三千多萬筆了
因此上方的效能變得非常差
於是我在 main_table 開了一個 mt_hits 的欄位
想要跑一次循環把總結寫進這個欄位
<?php
$sql = "SELECT mt_id, COUNT(ht_id) as totalHits FROM hits_table GROUP BY
mt_id";
$query = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($query);
do {
$update = sprintf("UPDATE main_table SET mt_hits = %s WHERE mt_id = %s",
$row['totalHist'],
$row['mt_id']);
myaql_query($update);
} while ($row = mysql_fetch_assoc($query));
?>
不過可能因為筆數太多,這隻 query 根本跑不完
請問該怎麼改善比較好
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.11.173
→
07/26 09:46, , 1F
07/26 09:46, 1F
→
07/26 09:46, , 2F
07/26 09:46, 2F
推
07/26 10:33, , 3F
07/26 10:33, 3F
→
07/26 11:19, , 4F
07/26 11:19, 4F
→
07/26 11:19, , 5F
07/26 11:19, 5F
推
07/26 14:24, , 6F
07/26 14:24, 6F
→
07/26 14:26, , 7F
07/26 14:26, 7F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
154
159