mysql優化思路

2021-09-07 09:13:53 字數 2133 閱讀 4035

為什麼別人問你mysql優化的知識 總是沒有底氣, 因為你只是回答一些大而化之的調優原則, 比如:

1、」建立合理索引」(什麼樣的索引合理?)

2、「分表分庫」(用什麼策略分表分庫?)

3、「主從分離」(用什麼中介軟體?)

並沒有從細化到定量的層面去分析.

如qps提高了%n? 有沒有減少檔案排序?語句的掃瞄行數減少了多少?沒有大量的資料供測試,一般在學習環境中,只是手工新增幾百上萬條資料,資料量小,看不出語句之間的明確區別.

如何提高mysql的效能?

需要優化,則說明效率不夠理想.,因此我們首先要做的,不是優化,而是---診斷.

治病的前提,是診病,找出瓶頸所在. cpu,記憶體,io? 峰值,單條語句?

輔助工具awk

awk指令碼使用:awk 『』 score.txt

檢視問題是否是週期性故障或波動------>一般由訪問高峰或快取崩潰引起,加快取並更改快取失效策略,使快取失效時間分散或夜間定時失效。

mysql常用語句:

show processlist;

show status;

如果還有問題,那麼可以通過show processlist命令或者開啟慢查詢獲取有問題的sql,然後通過profiling分析語句或者explain語句分析問題。

什麼情況下產生臨時表

1、group by的列和order by的列不同時,兩表查詢時,取a表的內容,group/order by另外表的列

2、distinct和order by一起使用時

3、開啟了sql_small_restult選項

什麼情況下臨時表寫在磁碟上

1、取出的列含有text/blob型別時,記憶體表儲存不了text/blob型別

2、在group by或distinct的列中存在》512位元組的string列

3、select中含有》512位元組的string列,同時又使用了union或union all語句。

mysql5.0以後新增了乙個小功能,就是profiles功能

首先執行    set profiling=on;  以後你所執行的語句mysql都會給你記錄下來,可以通過  show profiles 命令檢視你所執行的命令。

然後可以根據 show profile for query 命令id  檢視命令執行的過程。具體執行過程如下:

mysql> set profiling=on

-> ;

query ok, 0 rows affected

mysql> show profiles;

empty set

mysql> select * from ry;

+----+-------+-------+------+

| id | mz    | gz    | mcid |

+----+-------+-------+------+

|  1 | joe   | 70000 |    1 |

|  2 | henry | 80000 |    2 |

|  3 | sam   | 60000 |    2 |

|  4 | max   | 90000 |    1 |

|  5 | janet | 69000 |    1 |

|  6 | randy | 85000 |    1 |

|  7 | jack  | 85000 |    1 |

+----+-------+-------+------+

7 rows in set

mysql> show profiles;

+----------+------------+------------------+

| query_id | duration   | query            |

+----------+------------+------------------+

|        1 | 0.00070325 | select * from ry |

+----------+------------+------------------+

1 row in set

mysql思路 MySQL優化思路

通過指令碼,重新整理觀察mysql的status,觀察是否有週期性故障活波動,一般由訪問高峰或者快取失效引起,家快取並更改快取失效策略,是失效時間分散或頁面定時失,show processlist顯示哪些執行緒正在執行。您也可以使用mysqladmin processlist語句得到此資訊。如果您有...

mysql優化思路

調優思路 1.資料庫設計與規劃 以後再修該很麻煩,估計資料量,使用什麼儲存引擎 2.資料的應用 怎樣取資料,sql語句的優化 3.mysql服務優化 記憶體的使用,磁碟的使用 4.作業系統的優化 核心 tcp連線數量 5.公升級硬體裝置 磁碟io規劃 raid技術 raid0 xfs swap分割槽...

mysql優化思路

二 mysql效能低解決思路 1 索引匹配原則 全值匹配 字首匹配 列字首匹配 匹配範圍值 只訪問索引的查詢 精確匹配某一列並範圍匹配某列2 關於sql的優化思路 1 使用explain或者desc 檢視sql的執行計畫 了解輸出項的含義,是否走索引或者索引合理。2 當sql要查詢的資料超過總記錄的...