首頁 運維 linux運維 Linux中如何對MySQL優化的詳細介紹

Linux中如何對MySQL優化的詳細介紹

Jun 04, 2017 am 11:26 AM

這篇文章主要介紹了Linux中對MySQL優化實例詳解的相關資料,需要的朋友可以參考下

Linux中對MySQL最佳化實例詳解

vim /etc/my.cnf以下只列出my.cnf檔案中[mysqld]段落中的內容,其他段落內容對MySQL運作效能影響甚微,因而姑且忽略。

[mysqld]
port = 3306
serverid = 1
socket = /tmp/mysql.sock
skip-locking
登入後複製

避免MySQL的外部鎖定,減少出錯幾率增強穩定性。

skip-name-resolve
登入後複製

禁止MySQL對外部連線進行DNS解析,使用此選項可以消除MySQL進行DNS解析的時間。但需要注意,如果開啟該選項,則所有遠端主機連線授權都要使用IP位址方式,否則MySQL將無法正常處理連線要求!

back_log = 384
登入後複製

back_log參數的值指出在MySQL暫時停止回應新請求之前的短時間內多少個請求可以被存在堆疊中。如果系統在一個短時間內有很多連接,則需要增加該參數的值,該參數值指定到來的TCP/IP連接的偵聽佇列的大小。不同的作業系統在這個佇列大小上有它自己的限制。試圖設定back_log高於你的作業系統的限制將是無效的。預設值為50。對於Linux系統建議設定為小於512的整數

key_buffer_size = 256M
登入後複製

key_buffer_size指定用於索引的緩衝區大小,增加它可得到更好的索引處理效能。對於內存在4GB左右的伺服器此參數可設定為256M或384M。注意:此參數值設定的過大反而會是伺服器整體效率降低!

max_allowed_packet = 4M
thread_stack = 256K
table_cache = 128K
sort_buffer_size = 6M
登入後複製

查詢排序時所能使用的緩衝區大小。注意:此參數對應的分配記憶體是每連接獨佔,如果有100個連接,那麼實際分配的總共排序緩衝區大小為100 × 6 = 600MB。所以,對於內存在4GB左右的伺服器建議設定為6-8M。

read_buffer_size = 4M
登入後複製

讀取查詢操作所能使用的緩衝區大小。和sort_buffer_size一樣,此參數對應的分配記憶體也是每連接獨享。

join_buffer_size = 8M
登入後複製

聯合查詢操作所能使用的緩衝區大小,和sort_buffer_size一樣,此參數對應的分配記憶體也是每連接獨享。

myisam_sort_buffer_size = 64M
table_cache = 512
thread_cache_size = 64
query_cache_size = 64M
登入後複製

指定MySQL查詢緩衝區的大小。可以透過在MySQL控制台觀察,如果Qcache_lowmem_prunes的值非常大,則表示經常出現緩衝不夠的情況;如果Qcache_hits的值非常大,則表示查詢緩衝使用非常頻繁,如果該值較小反而會影響效率,那麼可以考慮不用查詢緩衝;Qcache_free_blocks,如果該值非常大,則表示緩衝區中碎片很多。

tmp_table_size = 256M
max_connections = 768
登入後複製

指定MySQL允許的最大連線進程數。如果在訪問論壇時經常出現Too ManyConnections的錯誤提示,則需要增加該參數值。

max_connect_errors = 10000000
wait_timeout = 10
登入後複製

指定一個請求的最大連線時間,對於4GB左右記憶體的伺服器可以設定為5-10。

thread_concurrency = 8
登入後複製

此參數取值為伺服器邏輯CPU數量*2,在本例中,伺服器有2顆實體CPU,而每顆實體CPU又支援H.T超線程,所以實際取值為4*2 =8

skip-networking
登入後複製

開啟該選項可以徹底關閉MySQL的TCP/IP連線方式,如果WEB伺服器是以遠端連線的方式存取MySQL資料庫伺服器則不要開啟該選項!否則將無法正常連線!

table_cache=1024
登入後複製

物理記憶體越大,設定就越大.預設為2402,調到512-1024最佳

innodb_additional_mem_pool_size=4M
登入後複製

預設為2M

innodb_flush_log_at_trx_commit=1
登入後複製

設定為0就是等到innodb_log_buffer_size列隊滿後再統一儲存,預設為1

innodb_log_buffer_size=2M
登入後複製

預設為1M

innodb_thread_concurrency=8
登入後複製

你的伺服器CPU有幾個就設定為幾,建議用預設一般為8

key_buffer_size=256M
#默认为218,调到128最佳
tmp_table_size=64M         
#默认为16M,调到64-256最挂
read_buffer_size=4M        
#默认为64K
read_rnd_buffer_size=16M    
#默认为256K
sort_buffer_size=32M       
#默认为256K
thread_cache_size=120     
#默认为60
query_cache_size=32M
登入後複製

值得注意的是:

很多情況需要具體情況具體分析

#一、如果Key_reads太大,則應該把my .cnf中Key_buffer_size變大,維持Key_reads/Key_read_requests至少1/100以上,越小越好。

二、如果Qcache_lowmem_prunes很大,就要增加Query_cache_size的值。

以上是Linux中如何對MySQL優化的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

docker desktop怎麼用 docker desktop怎麼用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

docker怎麼啟動mysql docker怎麼啟動mysql Apr 15, 2025 pm 12:09 PM

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

docker lnmp怎麼調用 docker lnmp怎麼調用 Apr 15, 2025 am 11:15 AM

Docker LNMP 容器調用步驟:運行容器:docker run -d --name lnmp-container -p 80:80 -p 443:443 lnmp-stack獲取容器 IP:docker inspect lnmp-container | grep IPAddress訪問網站:http://<容器 IP>/index.phpSSH 訪問:docker exec -it lnmp-container bash訪問 MySQL:mysql -u roo

vscode 無法安裝擴展 vscode 無法安裝擴展 Apr 15, 2025 pm 07:18 PM

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

docker鏡像失敗怎麼辦 docker鏡像失敗怎麼辦 Apr 15, 2025 am 11:21 AM

Docker鏡像構建失敗的故障排除步驟:檢查Dockerfile語法和依賴項版本。檢查構建上下文中是否包含所需源代碼和依賴項。查看構建日誌以獲取錯誤詳細信息。使用--target選項構建分層階段以識別失敗點。確保使用最新版本的Docker引擎。使用--t [image-name]:debug模式構建鏡像以調試問題。檢查磁盤空間並確保足夠。禁用SELinux以防止干擾構建過程。向社區平台尋求幫助,提供Dockerfile和構建日誌描述以獲得更具體的建議。

怎麼看docker進程 怎麼看docker進程 Apr 15, 2025 am 11:48 AM

Docker 進程查看方法:1. Docker CLI 命令:docker ps;2. Systemd CLI 命令:systemctl status docker;3. Docker Compose CLI 命令:docker-compose ps;4. Process Explorer(Windows);5. /proc 目錄(Linux)。

vscode是什麼 vscode是乾什麼用的 vscode是什麼 vscode是乾什麼用的 Apr 15, 2025 pm 06:45 PM

VS Code 全稱 Visual Studio Code,是一個由微軟開發的免費開源跨平台代碼編輯器和開發環境。它支持廣泛的編程語言,提供語法高亮、代碼自動補全、代碼片段和智能提示等功能以提高開發效率。通過豐富的擴展生態系統,用戶可以針對特定需求和語言添加擴展程序,例如調試器、代碼格式化工具和 Git 集成。 VS Code 還包含直觀的調試器,有助於快速查找和解決代碼中的 bug。

See all articles