亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql性能優化(一)

發布時間:2020-03-22 09:49:56 來源:網絡 閱讀:16614 作者:攀巖人生 欄目:數據庫

                       mysql性能優化、慢查詢分析、優化索引和配置

.每項的基本思路步驟

1.性能瓶頸定位:show命令、慢查詢日志、explain分析查詢、profiling分析查詢、

2.索引及查詢優化

3.配置優化

.mysql是常見的兩個瓶頸是cpui/o的瓶頸,cup在內存和磁盤上讀取數據,磁盤i/o發生在裝入數據遠大于內存容量的時候,當查詢量過大的時候瓶頸會暴露在網絡中,可以通過命令查看系統性能:mpstatiostatsarvmstat

mysql性能優化(一) 

使用另外兩個查看

mysql性能優化(一) 

優化數據庫通常有三種:使用索引、explain分析查詢、調整mysql內部配置

1.查詢和索引優化

優化mysql需要對數據庫分析,有慢查詢、explainprofiling分析、show命令查看系統狀態和系統變量。

show命令:

使用variables查看數據庫配置信息

mysql性能優化(一) 

查看數據庫運行的各種狀態值

mysql性能優化(一) 

在命令行中使用mysqladmin查看系統變量及狀態信息

mysql性能優化(一) 

mysql性能優化(一) 在數據庫中使用help  show可以查看所有參數參考

慢查詢日志

開啟慢查詢日志:在my.cnf配置文件中添加3個參數,然后重啟mysql數據庫服務

mysql性能優化(一)重啟服務并且查看是否存在目錄

mysql性能優化(一) 

也可以通過在數據庫中設置

set global slow_query_log=on;    set long_query_time=時間;   set global  slow_query_log_file="目錄"

查看慢查詢設置信息

mysql性能優化(一) 

為了測試可以建個腳本執行創建庫、表建多少行,次測試建了20000

mysql性能優化(一) 

腳本內容

mysql性能優化(一) 

執行一條命令并且查看慢查詢日志

mysql性能優化(一) 

在日志文件中查看 如果在日志中查詢不到在/etc/my.cnf中把time時間改小點

mysql性能優化(一) 

explain分析查詢

使用explain關鍵字是可以模擬優化器執行sql查詢語句

mysql性能優化(一) 

EXPLAIN字段:

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

type:這是最重要的字段之一,顯示查詢使用了何種類型。從最好到最差的連接類型為systemconsteq_regrefrangeindexALL

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

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

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

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

rowsMySQL認為必須檢索的用來返回請求數據的行數

Extra:關于MYSQL如何解析查詢的額外信息 

沒有索引不是單個查找而是全表掃描

優化方法:創建索引、然后在進行查找執行explain

mysql性能優化(一) 

profiling分析查詢

通過profiling命令可以更精準的查到sql執行消耗資源的信息(profiling默認是關閉的)

開啟profiling并且查看是否開啟

mysql性能優化(一) 

執行語句測試

mysql性能優化(一) 

使用profile查看sql語句執行的詳細信息   status:是profile里的狀態,duration:是status狀態下的所耗的時間

mysql性能優化(一) 

還可以測試更多的信息

SHOW PROFILE [type [, type] ... ][FOR QUERY n]

type:
       ALL:顯示所有的開銷信息
      BLOCK IO:顯示塊IO相關開銷
      CPU:顯示用戶CPU時間、系統CPU時間
      IPC:顯示發送和接收相關開銷信息
       PAGE FAULTS:顯示頁面錯誤相關開銷信息
      SWAPS:顯示交換次數相關開銷的信息

測試完之后,要關閉profiling以免影響數據庫的正常使用

mysql性能優化(一) 

2.配置優化

mysql參數優化對于不同的網站,及其在現量、訪問量、帖子數量、網絡情況、硬件配置都有關系,通過不斷的調試才能達到最佳的效果

連接請求的變量

(1)max_connections:mysql的最大連接數,如果服務器的并發連接較大,必須調高連接數值,否則會宕機,mysql連接數越多會為每個連接提供連接緩沖區,就會開銷越多的內存

查看最大連接數

mysql性能優化(一) 

查看當前的響應的連接數

mysql性能優化(一) 

調整最大連接數并測試 /etc/my.cnf中加入參數 max_connections = 連接數

mysql性能優化(一) 

到第四臺連接的時候報錯了 連接太多不讓連接

(2)back_log:能暫存連接數量,當主要的mysql線程在一個短時間內有很多的連接請求,它會起作用

當觀察主機進程列表時發現有很多大量的待連接時 用下面命令查看

mysql性能優化(一) 

查看back_log的連接數

mysql性能優化(一) 

修改back_log連接數 在/etc/my.cnf中添加參數

mysql性能優化(一) 

然后重啟服務

(3)wait_timeoutinteractive_time

wait_timeout:mysql在關閉一個非交互的連接之前所要等待的秒數

interactive_time:是mysql關閉一個交互的連接之前所要等待的秒數,如果超過了默認值的秒數就會自動斷開,默認值為28800=8個小時,可調為7200

wait_timeout:如果設置太小,連接關閉的很快,從而時一些持久的連接不起作用

       如果設置太大,容易造成連接打開時間過長,從而造成too many  connections錯誤     一般建議wait_timeout盡可能降低

查看wait_timeoutinteractive_timeout

mysql性能優化(一) 

修改/etc/my.cnf文件,在[mysqld]下面添加

wait_timeout = 秒數

interactive-timeout = 秒數

(4)key-buff_size

key_buff_size:是指定索引緩沖區的大,決定索引的處理速度,通過查看key_read_requestskey_reads可以知道key_buffer_size設置是否合理

查看狀態值

mysql性能優化(一) 

它們倆的比例最好是key_reads/key_buffer_size  1/100  1/1000

一共有6個索引讀取請求,有3個請求在內存中沒有找到直接從硬盤中讀取索引

*key_buffer_size只對mylsam引擎表起作用   即使不使用mylsam表也能使用內部臨時磁盤表這個表是mylsam引擎

mysql性能優化(一) 

調整key_buffer_size/etc/my.cnf[mysqld]下添加參數key_buffer_size=多少MB

重啟mysqld,就能生效

5query_cache_size簡稱QC

使用查詢緩沖,mysql將查詢結果存放在緩沖區中,對于同樣的select語句,將直接從緩沖區讀取結果。通過查看狀態值qcache%,可以知道query_cache_size設置是否合理

mysql性能優化(一) 

qcache_free_blocks:緩存中相鄰內存塊的個數,如果多就證明碎片較多,通過flush query cache對緩存中的碎片進行清理,從而得到空閑的塊

qcache_free_memoryquery  cache 中目前剩余的內存大小

qcache_hits表示有多少次命中緩存

qcache_inserts示多少次未命中然后插入

qcache_lowmem_prunes多少條query 因為內存不足而被清除出query cache

qcache_not_cached:不適合進行緩存的查詢的數量

qcache_queries_in_cache當前query  cache cache query 數量

qcache_total_blocks當前query  cache 中的block 數量

查看query_cache的配置

mysql性能優化(一) 

query_cache_limit:超過此大小的查詢將不緩存

query_cache_min_res_unit:緩存塊的最小大小 

query_cache_size:查詢緩存大小

query_cache_type:緩存類型

mysql性能優化(一) 

修改/etc/my.cnf添加query_cache_size =多少M    query_cache_type=1(開啟)

重啟mysqld服務   查看是否啟動成功

mysql性能優化(一) 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保山市| 定安县| 武强县| 万盛区| 获嘉县| 柳林县| 湘西| 平果县| 连江县| 阳泉市| 常宁市| 新绛县| 驻马店市| 北川| 九台市| 长沙市| 灵川县| 乐至县| 南充市| 云南省| 台北市| 吴桥县| 响水县| 固镇县| 福建省| 双城市| 虹口区| 家居| 思南县| 始兴县| 建阳市| 四平市| 白玉县| 秭归县| 阿尔山市| 山阳县| 普兰店市| 新竹县| 兴城市| 黄冈市| 中江县|