我使用PHP,MySQL的下列
我有兩個表從一個小桌子和一個大表
- 用戶
- users_messages
表「用戶優化選擇查詢「存儲所有用戶的記錄。
id name password 1 XYZ XYZ
[這裏ID其實就是USER_ID]
表 「信息」 包含用戶發佈的
id user_id messages 1 1 XYZ
「用戶」 表中包含成千上萬的記錄(> 5000)
消息 「users_messages」包含大約100條記錄(將保持不同)
我想獲取所有用戶的消息no並在一張桌子上展示出來。 目前我正在嘗試對它們進行分頁,因此我只需要一個頁面加載的20個用戶。
我有我的查詢如下
SELECT u.username as username,u.id as id, COUNT(f.user_id) AS no_of_messages
FROM users AS u
LEFT JOIN users_messages AS f ON f.user_id = u.id
GROUP BY u.id LIMIT 20
這工作,但它需要很長的時間......可能是它會掃描整個表只是爲了讓不只有20個用戶的信息。
表「用戶」的id列不是從1開始,開始是隨機的,但它會自動從下一條記錄遞增。
看看索引是對用戶表啓用。介紹「解釋用戶」的輸出? – traditional