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

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 優化步驟 2:記錄上次返回的主鍵,在下次查詢時使用主鍵過濾

    SELECT?film?id,?description?FROM?sakila.film?WHERE?film?id?>55?and?film?id?<=?60?ORDER?BY?film?id?LIMIT?1,?5;

    *避免了數據量大時掃描過多的記錄

    查看全部
  • 優化步驟 1:使用有索引的列或主鍵進行 Order by 操作

    SELECT?film_id,?description?FROM?sakila.film?ORDER?BY?film_id?LIMIT?50,?5;
    查看全部
  • limit 常用于分頁處理,時常會伴隨 order by 從句使用,因此大多時候會使用 Filesorts 這樣會造成大量的 IO 問題。

    SELECT?film_id,?description?FROM?sakila.film?ORDER?BY?title?LIMIT?50,?5;
    查看全部
  • 優化 group by 查詢一優化后

    Explain?SELECT?actor.first_name,?actor.kast_name,?c.cnt?
    FROM?sakila.actor?INNER?JOIN?(
    SELECT?actor_id,?COUNT?(*)?AS?cnt?FROM?sakila.film_actor?GROUP?BY?
    actor_id
    )?AS?c?USING(actor_id);

    在子查詢內加過濾條件

    查看全部
    0 采集 收起 來源:group by的優化

    2022-07-10

  • explain?SELECT?actor.First_name,?actor.Last_?name,?COUNT?(*)?
    FROM?sakila.film_actor
    INNER?JOIN?sakila.actor?USING(actor_id)?
    GROUP?BY?film_actor.actor_id;
    查看全部
    0 采集 收起 來源:group by的優化

    2022-07-10

  • 通常情況下,需要把子查詢優化為 join 查詢,但在優化時要注意關聯建是否有一對多的關系,要注意重復數據。

    (查詢 sandra 出演的所有影片)

    explain?SELECT?title,?release_year,?LENGTH?
    FROM?film
    WHERE?film_id?IN(
    ??SELECT?film_id?FROM?film_actor?WHERE?actor_id?IN
    ????SELECT?actor_id?FROM?actor?WHERE?first_name?=?'sandra'))
    查看全部
    0 采集 收起 來源:子查詢的優化

    2022-07-10

  • 在一條 SQL 中同時查出 2006 年和 2007 年電影的數量一優化 count0 函數正確的方式:

    SELECT?COUNT?(release_year='2006'?OR?NULL)?AS?'2006?年電影數量',?COUNT?(release_year='2007’?OR?NULL)?AS?'2007?年電影數量'?FROM?film;
    查看全部
  • 在一條 SQL 中同時查出 2006 年和 2007 年電影的數量一優化 count() 函數

    錯誤的方式:

    SELECT?COUNT?(release_year='2006'?OR?release_year='2007')?FROM?film;

    無法分開計算?2006?和?2007?年的電影數量

    SELECT?COUNT?(*)?FROM?film?WHERE?release_year='2006'?AND?release_year?='2007';

    Release_year 不可能同時為 2006 和 2007,因此上有邏輯錯誤

    查看全部
  • 查詢最后支付時間一優化 max() 函數

    select?max(payment_date)?from?payment;

    http://img1.sycdn.imooc.com//62ca25bc0001d2e013620336.jpg

    查看全部
  • extra 列需要注意的返回值

    • Using filesort:看到這個的時候,查詢就需要優化了。MYSQL 需要進行額外的步驟來發現如何對返回的行排序。它根據連接類型以及存儲排序鍵值和匹配條件的全部行的行指針來排序全部行

    • Using temporary 看到這個的時候,查詢需要優化了。這里,MYSQL 需要創建一個臨時表來存儲結果,這通常發生在對不同的列集進行 ORDER BY 上,而不是 GROUP BY 上

    查看全部
  • 如何分析 SQL 查詢

    使用 explain 查詢 SQL 的執行計劃

    http://img1.sycdn.imooc.com//62ca237b0001571d13640336.jpg

    explain 返回各列的含義

    • table:顯示這一行的數據是關于哪張表的

    • type:這是重要的列,顯示連接使用了何種類型。從最好到最差的連接類型為 const、eq_reg、ref、range、index 和 ALL

    • possible_keys:顯示可能應用在這張表中的索引。如果為空,沒有可能的索引。

    • key:實際使用的索引。如果為 NULL,則沒有使用索引。

    • key_len:使用的索引的長度。在不損失精確性的情況下,長度越短越好

    • ref:顯示索引的哪一列被使用了,如果可能的話,是一個常數

    • rows:MYSQL 認為必須檢查的用來返回請求數據的行數

    查看全部
  • 如何通過慢查日志發現有問題的 SQL?

    1. 查詢次數多且每次查詢占用時間長的 SQL?

      通常為 pt-query-digest 分析的前幾個查詢

    2. IO 大的 SQL

      注意 pt-query-digest 分析中的 Rows examine 項

    3. 未命中索引的 SQL

      注意 pt-query-digest 分析中 Rows examine 和 Rows Send 的對比

    查看全部
  • 慢查日志的分析工具—— pt-query-digest 輸出

    https://img1.sycdn.imooc.com//62ca15550001339f15920554.jpghttp://img1.sycdn.imooc.com//62ca15800001ca1b15820988.jpg

    查看全部
  • 慢查日志的分析工具

    • 輸出到文件

      pt-query-digest slow-log > slow_log.report

    • 輸出到數據庫表

      pt-query-digest slow.log -review \

      h=127.0.0.1, D=test, p=root, P=3306, u=root, t=query_review \

      --create-reviewtable \

      --review-history t= hostname_slow

    查看全部
  • 慢查日志的分析工具 —— mysqldumpslow 輸出

    https://img1.sycdn.imooc.com//62ca12f00001b3de11940418.jpg

    http://img1.sycdn.imooc.com//62ca13130001436414420156.jpg

    查看全部

舉報

0/150
提交
取消
課程須知
想要學好這門課程,你需要具備MySQL數據庫的基本知識,如果具有相關的工作經驗并且希望能提升工作技能的話,這門課程就再適合不過了。
老師告訴你能學到什么?
1、了解數據庫優化的各個方面的方法和技巧 2、如何對SQL語句和索引進行優化 3、如何對數據庫結構及運行環境進行優化

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!