mysql的階乘 MYSQL筆記

2021-10-22 09:59:32 字數 1632 閱讀 2478

查詢效能優化:

請求了本不需要的資料:不需要的列、不需要的行、重複查詢同乙個結果;

衡量查詢開銷的指標:響應時間、掃瞄的行數、返回的行數;

資料訪問型別效率從高到低依次為:常量引用、唯一索引查詢、範圍掃瞄、索引掃瞄、全表掃瞄;

使用where條件從好到壞依次為:在索引中過濾、使用索引覆蓋掃瞄在伺服器中過濾、從資料表中返回資料然後過濾;

掃瞄大量行只返回少量行的解決辦法:使用索引覆蓋、改變表結構使用彙總表、重寫複雜查詢;

重構查詢的方式:分解複雜查詢為多個簡單查詢、切分查詢、分解關聯查詢;

查詢執行的步驟:接收查詢請求、查詢快取、解析和預處理sql、優化生成執行計畫、呼叫儲存引擎查詢、返回結果;

mysql通訊協議:半雙工;

檢視當前連線狀態:show full processlist;

mysql連線狀態:

sleep:等待客戶端傳送新的請求;

query:正在執行或者正在將結果傳送給客戶端;

locked:正在等待鎖;

analyzing and statistics:正在收集儲存引擎統計資訊,並生成執行計畫;

copying to tmp table:正在執行查詢並將結果複製到乙個臨時表中,這種狀態要麼是坐group by操作,要麼是檔案排序操作,要麼union操作。這個狀態後面還有「on disk」標記,表示正在將乙個記憶體臨時表放在磁碟上;

sorting result:執行緒正在對結果進行排序;

sending data:表示在多個狀態之間傳送資料,或者在生成結果集,或者在向客戶端返回資料;

mysql能夠處理的優化型別:重新定義關聯表的順序、將外連線轉化成內連線、使用等價交換規則、優化count/min/max等函式、預估並轉化為常數表示式、覆蓋索引掃瞄、子查詢優化、提前終止查詢、等值傳播、列表in的比較;

檢視重構後的查詢:先執行explain extended sql,再執行show warnings;

如果有超過n個表的關聯,那麼需要檢查n的階乘種關聯順序,使用straight_join限制表關聯順序優化;

mysql排序演算法:兩次傳輸排序(讀取行指標和需要排序的字段然後進行排序,根據排序結果讀取需要的行)、單詞傳輸排序(讀取整列進行排序),當讀取列長度不超過max_length_for_sort_data時,使用單詞排序;

mysql排序的時候需要分配資料型別的完整長度,如果order by子句中的列都來自關聯第乙個表,那麼在處理第乙個表的時候就進行檔案排序,在extra中可以看到「using filesort」,否則會將第乙個表的結果存臨時表,在所有關聯結束後進行排序,extra可以看到「using temporary;using filesort」;

count()優化:count函式有兩種非常不同的作用:統計某個列值的數量(當count中的引數含有列值時;不統計null)、統計行數。無任何where條件時myisam的count執行的非常快。

優化關聯查詢:當表a和表b通過列c來關聯的時候,如果優化器的關聯順序是ba,那麼就不需要在b表的對於列上建索引;確保group by和order by中的表示式只涉及到乙個表中的列;

union查詢:除非確實需要伺服器消除重複的行,否則就一定要使用union all,因為如果沒有all關鍵字mysql會給臨時表加上distinct選項,這會導致對整個臨時表的資料做唯一性檢查,代價非常高;

MySQL的階乘函式 C 階乘函式(遞迴)詳解

遞迴計算階乘函式將接收乙個整數引數並計算其階乘。現在不妨用數學的例子來檢驗乙個遞迴的應用。在數學中,符號 n 表示數字 n 的階乘。整數 n 的階乘被定義如下。n 1 x 2 x 3 x x n 如果 n 0 n 1 如果 n 0 規則規定,當 n 大於 0 時,其階乘是從 1 到 n 的所有正整數...

mysql做筆記 mysql筆記

當key cache miss rate key reads key read requests 100 大於1 時需要增加 key buffer size show global status like key read 對於myisam 需要注意table cache的設定 當這個不夠用時mys...

階乘MySQL 程式設計之美 2 2不要被階乘嚇到

題目 1 給定乙個整數n,那麼n的階乘n!末尾有多少個0?例如n 10,n!3628800,末尾有兩個0.2 求n!的二進位制表示中最低位1的位置。問題一 題目解析 這道題如果直接求n!的話也可以,不過萬一溢位了怎麼辦?即使定義longlong型別的也不合適。那 題目 1 給定乙個整數n,那麼n的階...