真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mysql參數(shù)優(yōu)化的詳細(xì)步驟-創(chuàng)新互聯(lián)

本篇文章給大家主要講的是關(guān)于Mysql參數(shù)優(yōu)化的詳細(xì)步驟的內(nèi)容,感興趣的話就一起來看看這篇文章吧,相信看完Mysql參數(shù)優(yōu)化的詳細(xì)步驟對(duì)大家多少有點(diǎn)參考價(jià)值吧。

10年積累的成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有寒亭免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

連接優(yōu)化

back_log=500 (默認(rèn)50)

MySql的連接達(dá)到max_connections時(shí),新來的請(qǐng)求將會(huì)被存在堆棧中,以等待某一連接釋放資源,該堆棧的數(shù)量即back_log,如果等待連接的數(shù)量超過back_log,將不被授予連接資源。將會(huì)報(bào):unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待連接進(jìn)程時(shí).back_log值不能超過TCP/IP連接的偵聽隊(duì)列的大小。若超過則無效,查看當(dāng)前系統(tǒng)的TCP/IP連接的偵聽隊(duì)列的大小命令:cat /proc/sys/net/ipv4/tcp_max_syn_backlog目前系統(tǒng)為1024。對(duì)于Linux系統(tǒng)推薦設(shè)置為小于512的整數(shù)。

wait_timeout=1800 (默認(rèn)8小時(shí),單位秒)

MySQL客戶端的數(shù)據(jù)庫(kù)連接閑置大時(shí)間值;有大量sleep長(zhǎng)時(shí)間占用內(nèi)存和連接數(shù),則需要修改此項(xiàng)。

max_connections=3000 (默認(rèn)151)

MySql的大連接數(shù),如果云服務(wù)器的并發(fā)連接請(qǐng)求量比較大,建議調(diào)高此值,連接數(shù)越多占用內(nèi)存越多

max_connect_errors = 10000000

盡量設(shè)大,防止錯(cuò)誤鏈接數(shù)過多導(dǎo)致無法寫入數(shù)據(jù)

CPU優(yōu)化

 thread_concurrency=16 (默認(rèn)8)

正確設(shè)置可以充分利用多核CPU,thread_concurrency應(yīng)設(shè)為CPU核數(shù)的2倍

網(wǎng)絡(luò)優(yōu)化

skip-name-resolve (默認(rèn)被注釋)

禁止MySQL對(duì)外部連接進(jìn)行DNS解析,使用這一選項(xiàng)可以避免MySQL進(jìn)行DNS解析的時(shí)間。但需要注意,如果開啟該選項(xiàng),則所有遠(yuǎn)程主機(jī)連接授權(quán)都要使用IP地址方式,否則MySQL將無法正常處理連接請(qǐng)求!

IO優(yōu)化

 key_buffer_size=400M (MyISAM)

用于索引塊的緩沖區(qū)大小,對(duì)MyISAM影響較大的參數(shù)。key_reads / key_read_requests在0.1之下比較好

key_cache_miss_rate = Key_reads / Key_read_requests * 100%
show status like 'key_read%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Key_read_requests | 28535 |
| Key_reads         | 269   |
+-------------------+-------+
以上key_cache_miss_rate大于0.1%,則需要增大參數(shù)。key_cache_miss_rate在0.1%以下都很好(每1000個(gè)請(qǐng)求有一個(gè)直接讀硬盤),如果key_cache_miss_rate在0.01%以下的話,key_buffer_size分配的過多,可以適當(dāng)減少。
mysql> show global status like 'key_blocks_u%';
+---------------------------+
| Variable_name     | Value |
+---------------------------+
| Key_blocks_unused | 0     |
| Key_blocks_used   | 413543|
+---------------------------+
Key_blocks_unused表示未使用的緩存簇(blocks)數(shù),Key_blocks_used表示曾經(jīng)用到的大的blocks數(shù),比如這臺(tái)服務(wù)器,所有的緩存都用到了,要么增加key_buffer_size,要么就是過渡索引了,把緩存占滿了。比較理想的設(shè)置:
Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%

innodb_buffer_pool_size = 2048M  (默認(rèn)128M,InnoDB)

用于緩存數(shù)據(jù)塊和索引鍵。對(duì)InnoDB表性能影響大的一個(gè)參數(shù),增加這個(gè)參數(shù)的大小,可以有效的減少 InnoDB 類型的表的磁盤 I/O 。

SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_pages_%';
+----------------------------------+--------+
| Variable_name                    | Value  |
+----------------------------------+--------+
| Innodb_buffer_pool_pages_data    | 129037 |
| Innodb_buffer_pool_pages_dirty   | 362    |
| Innodb_buffer_pool_pages_flushed | 9998   |
| Innodb_buffer_pool_pages_free    | 0      |  !!!!!!!!
| Innodb_buffer_pool_pages_misc    | 2035   |
| Innodb_buffer_pool_pages_total   | 131072 |
+----------------------------------+--------+
6 rows in set (0.00 sec)

 Innodb_buffer_pool_pages_free 為 0,則說明 buffer pool 已經(jīng)被用光,需要增大innodb_buffer_pool_size
 建議使用 所有內(nèi)存的 75% (在剩余內(nèi)存能夠保證系統(tǒng)和其它服務(wù)正常運(yùn)行的情況下)

innodb_additional_mem_pool_size=100M (默認(rèn)8M)

設(shè)置了InnoDB存儲(chǔ)引擎用來存放數(shù)據(jù)字典信息以及一些內(nèi)部數(shù)據(jù)結(jié)構(gòu)的內(nèi)存空間大小,所以當(dāng)我們一個(gè)MySQL Instance中的數(shù)據(jù)庫(kù)對(duì)象非常多的時(shí)候,是需要適當(dāng)調(diào)整該參數(shù)的大小以確保所有數(shù)據(jù)都能存放在內(nèi)存中提高訪問效率的。如果設(shè)置太小日志會(huì)出現(xiàn)warning

2G內(nèi)存推薦20M,32G內(nèi)存推薦100M

innodb_log_buffer_size=20M (默認(rèn)8M)

InnoDB存儲(chǔ)引擎的事務(wù)日志所使用的緩沖區(qū)。類似于Binlog Buffer,InnoDB在寫事務(wù)日志的時(shí)候,為了提高性能,也是先將信息寫入Innofb Log Buffer中。理想8M,不建議超過32MB,將此緩存段增大可以減少數(shù)據(jù)庫(kù)寫數(shù)據(jù)文件次數(shù)。

innodb_flush_log_trx_commit=0 (默認(rèn)1)

0  log buffer每秒就會(huì)被刷寫日志文件到磁盤,提交事務(wù)的時(shí)候不做任何操作
1  在每次事務(wù)提交的時(shí)候?qū)og buffer 中的數(shù)據(jù)都會(huì)寫入到log file,同時(shí)也會(huì)觸發(fā)文件系統(tǒng)到磁盤的同步;

2  事務(wù)提交會(huì)觸發(fā)log buffer到log file的刷新,但并不會(huì)觸發(fā)磁盤文件系統(tǒng)到磁盤的同步。此外,每秒會(huì)有一次文件系統(tǒng)到磁盤同步操作。

設(shè)為1當(dāng)然是最安全的,但性能頁(yè)是最差的(相對(duì)其他兩個(gè)參數(shù)而言,但不是不能接受)。如果對(duì)數(shù)據(jù)一致性和完整性要求不高,完全可以設(shè)為2,如果只最求性能,例如高并發(fā)寫的日志云服務(wù)器,設(shè)為0來獲得更高性能

innodb_log_file_size = 128M (默認(rèn)8M)

此配置項(xiàng)作用設(shè)定innodb 數(shù)據(jù)庫(kù)引擎UNDO日志的大?。粡亩鴾p少數(shù)據(jù)庫(kù)checkpoint操作。

query_cache_size = 128M (默認(rèn)32M)

緩存MySQL中的ResultSet,也就是一條SQL語(yǔ)句執(zhí)行的結(jié)果集,所以僅僅只能針對(duì)select語(yǔ)句

show status like 'Qcache_%';
| Qcache_hits             | 1892463  |
| Qcache_inserts          | 35627    |
命中率98.17%=1892463/(1892463 +35627 )*100

thread_cache_size = 128 (默認(rèn)8)

,當(dāng)斷開連接時(shí)如果緩存中還有空間,那么客戶端的線程將被放到緩存中,如果線程重新被請(qǐng)求,那么請(qǐng)求將從緩存中讀取,如果緩存中是空的或者是新的請(qǐng)求,那么這個(gè)線程將被重新創(chuàng)建,

 mysql> show status like 'thread%';
+——————-+——-+
| Variable_name     | Value |
+——————-+——-+
| Threads_cached    | 0     |  <—當(dāng)前被緩存的空閑線程的數(shù)量
| Threads_connected | 1     |  <—正在使用(處于連接狀態(tài))的線程
| Threads_created   | 1498  |  <—服務(wù)啟動(dòng)以來,創(chuàng)建了多少個(gè)線程
| Threads_running   | 1     |  <—正在忙的線程(正在查詢數(shù)據(jù),傳輸數(shù)據(jù)等等操作)
+——————-+——-+
查看開機(jī)起來數(shù)據(jù)庫(kù)被連接了多少次?
mysql> show status like '%connection%';
+———————-+——-+
| Variable_name        | Value |
+———————-+——-+
| Connections          | 1504  |          –>服務(wù)啟動(dòng)以來,歷史連接數(shù)
| Max_used_connections | 2     |
+———————-+——-+
通過連接線程池的命中率來判斷設(shè)置值是否合適?命中率超過90%以上,設(shè)定合理。
 (Connections -  Threads_created) / Connections * 100 %
 物理內(nèi)存 1G  —> 8;2G  —> 16; 3G  —> 32; >3G  —> 64

 innodb_autoextend_increment=128 (默認(rèn)8M)

此配置項(xiàng)作用主要是當(dāng)tablespace 空間已經(jīng)滿了后,需要MySQL系統(tǒng)需要自動(dòng)擴(kuò)展多少空間,每次tablespace 擴(kuò)展都會(huì)讓各個(gè)SQL 處于等待狀態(tài)。增加自動(dòng)擴(kuò)展Size可以減少tablespace自動(dòng)擴(kuò)展次數(shù)

表結(jié)構(gòu)優(yōu)化

innodb_file_per_table = on (5.6之前默認(rèn)off)

這項(xiàng)設(shè)置告知InnoDB是否需要將所有表的數(shù)據(jù)和索引存放在共享表空間里(innodb_file_per_table = OFF) 或者為每張表的數(shù)據(jù)單獨(dú)放在一個(gè).ibd文件(innodb_file_per_table = ON)。每張表一個(gè)文件允許你在drop、truncate或者rebuild表時(shí)回收磁盤空間。這對(duì)于一些高級(jí)特性也是有必要的,比如數(shù)據(jù)壓縮。但是它不會(huì)帶來任何性能收益。你不想讓每張表一個(gè)文件的主要場(chǎng)景是:有非常多的表(比如10k+)。

MySQL 5.6中,這個(gè)屬性默認(rèn)值是ON,因此大部分情況下你什么都不需要做。對(duì)于之前的版本你必需在加載數(shù)據(jù)之前將這個(gè)屬性設(shè)置為ON,因?yàn)樗粚?duì)新創(chuàng)建的表有影響。

以上關(guān)于Mysql參數(shù)優(yōu)化的詳細(xì)步驟詳細(xì)內(nèi)容,對(duì)大家有幫助嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前題目:Mysql參數(shù)優(yōu)化的詳細(xì)步驟-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://weahome.cn/article/ecgce.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部