亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對同一個 MySQL 數據庫執行相同的查詢需要不同的時間來執行

對同一個 MySQL 數據庫執行相同的查詢需要不同的時間來執行

PHP
森欄 2023-03-11 16:50:01
我有一個 PhpBB 板,大約有 3000 個用戶和 500.000 個帖子。在過去的幾天里,我注意到一些主題使用比標準更長的時間打開(大約 2 秒而不是 0.05 秒)。因此,我進行了調試以進行調查,發現這是一個查詢錯誤。相同的查詢需要不同的時間來執行,具體取決于它請求的主題。例如,此查詢需要 1.7011 秒才能執行:SELECT u.username, u.user_id, u.user_active, u.user_mask, u.user_color, u.user_first_name, u.user_last_name, u.user_posts, u.user_from, u.user_long, u.user_lat, u.user_from_flag, u.user_website, u.user_email, u.user_aim, u.user_facebook, u.user_flickr, u.user_googleplus, u.user_icq, u.user_jabber, u.user_linkedin, u.user_msnm, u.user_skype, u.user_twitter, u.user_yim, u.user_youtube, u.user_regdate, u.user_allow_viewemail, u.user_rank, u.user_rank2, u.user_rank3, u.user_rank4, u.user_rank5, u.user_sig, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, u.user_allow_viewonline, u.user_session_time, u.user_warnings, u.user_level, u.user_birthday, u.user_next_birthday_greeting, u.user_gender, u.user_personal_pics_count, u.user_style, u.user_lang, u.preferenza_meteo, u.stazione_meteo, u.ct_miserable_user, p.*, t.topic_poster, t.title_compl_infosFROM phpbb_posts p, phpbb_users u, phpbb_topics tWHERE p.topic_id = 17278AND t.topic_id = p.topic_idAND u.user_id = p.poster_idORDER BY p.post_time ASCLIMIT 0, 15這是解釋結果:這個查詢,它是相同的,但它在 WHERE 子句中使用不同的 ID 主題,需要 0.0015 秒,這是這種數據庫請求的正常時間。FROM phpbb_posts p, phpbb_users u, phpbb_topics tWHERE p.topic_id = 17250AND t.topic_id = p.topic_idAND u.user_id = p.poster_idORDER BY p.post_time ASCLIMIT 0, 15這是此查詢的 EXPLAIN 結果:我使用這個板大約 15 年了,我從來沒有注意到類似的問題,以及類似的打開主題的時間。但我無法理解問題出在哪里。
查看完整描述

1 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

MySQL 使用內部緩存來處理您的請求。數據庫中更頻繁的部分在緩存中,而其他部分則不在。多次執行同一個查詢應該告訴你,第一次調用是,就查詢和結果不在緩存中而言,最慢和連續的調用變得更快。對數據庫的更改會使緩存無效,因此您的查詢可能會在下一次調用時變慢。

第二點是連接。需要匹配的數據越多,查詢運行的時間就越長。您可以在“行”列中的解釋中看到這一點。您的第一個查詢將探索表“p”的 1004 行,而第二個查詢只有 476 行。


查看完整回答
反對 回復 2023-03-11
  • 1 回答
  • 0 關注
  • 159 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號