亚洲Aⅴ无码Av红楼在线观看_国产午夜福利涩爱AⅤ_国产sm调教一区二区三区_精品人妻一区二区三区不卡毛片

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

MySQL 環(huán)境變量的配置詳細(xì)說明

發(fā)布時(shí)間:  2012/8/23 16:53:51

調(diào)整MySQL運(yùn)行參數(shù),修改/etc/my.cnf文件調(diào)整mysql運(yùn)行參數(shù)重啟MySQL后生效,在MySQL4版本以后,一部分內(nèi)部變量可以在MySQL運(yùn)行時(shí)設(shè)置,不過重啟MySQL就失效了。
mysqld程序--目錄和文件
basedir      = path          # 使用給定目錄作為根目錄(安裝目錄)。
-
 

datadir      = path          # 從給定目錄讀取數(shù)據(jù)庫(kù)文件。
pid-file     = filename      # 為mysqld程序指定一個(gè)存放進(jìn)程ID的文件(僅適用于UNIX/Linux系統(tǒng));
 
[mysqld]                       
socket = /tmp/mysql.sock     # 為MySQL客戶程序與服務(wù)器之間的本地通信指定一個(gè)套接字文件(Linux下默認(rèn)是/var/lib/mysql/mysql.sock文件)
port             = 3306      # 指定MsSQL偵聽的端口
key_buffer       = 384M      # key_buffer是用于索引塊的緩沖區(qū)大小,增加它可得到更好處理的索引(對(duì)所有讀和多重寫)。
                               索引塊是緩沖的并且被所有的線程共享,key_buffer的大小視內(nèi)存大小而定。
table_cache      = 512       # 為所有線程打開表的數(shù)量。增加該值能增加mysqld要求的文件描述符的數(shù)量?梢员苊忸l繁的打開數(shù)據(jù)表產(chǎn)生的開銷
sort_buffer_size = 2M        # 每個(gè)需要進(jìn)行排序的線程分配該大小的一個(gè)緩沖區(qū)。增加這值加速ORDER BY或GROUP BY操作。
                               注意:該參數(shù)對(duì)應(yīng)的分配內(nèi)存是每連接獨(dú)占!如果有100個(gè)連接,那么實(shí)際分配的總共排序緩沖區(qū)大小為100×6=600MB
read_buffer_size = 2M        # 讀查詢操作所能使用的緩沖區(qū)大小。和sort_buffer_size一樣,該參數(shù)對(duì)應(yīng)的分配內(nèi)存也是每連接獨(dú)享。
query_cache_size = 32M       # 指定MySQL查詢結(jié)果緩沖區(qū)的大小
read_rnd_buffer_size    = 8M # 改參數(shù)在使用行指針排序之后,隨機(jī)讀用的。
myisam_sort_buffer_size =64M # MyISAM表發(fā)生變化時(shí)重新排序所需的緩沖
thread_concurrency      = 8  # 最大并發(fā)線程數(shù),取值為服務(wù)器邏輯CPU數(shù)量×2,如果CPU支持H.T超線程,再×2
thread_cache            = 8  # #緩存可重用的線程數(shù)
skip-locking                 # 避免MySQL的外部鎖定,減少出錯(cuò)幾率增強(qiáng)穩(wěn)定性。
[mysqldump]
max_allowed_packet      =16M # 服務(wù)器和客戶端之間最大能發(fā)送的可能信息包
 
[myisamchk]
key_buffer   = 256M
sort_buffer  = 256M
read_buffer  = 2M
write_buffer = 2M
 
其他可選參數(shù):
back_log = 384
    指定MySQL可能的連接數(shù)量。
    當(dāng)MySQL主線程在很短時(shí)間內(nèi)接收到非常多的連接請(qǐng)求,該參數(shù)生效,主線程花費(fèi)很短時(shí)間檢查連接并且啟動(dòng)一個(gè)新線程。
    back_log參數(shù)的值指出在MySQL暫時(shí)停止響應(yīng)新請(qǐng)求之前的短時(shí)間內(nèi)多少個(gè)請(qǐng)求可以被存在堆棧中。
    如果系統(tǒng)在一個(gè)短時(shí)間內(nèi)有很多連接,則需要增大該參數(shù)的值,該參數(shù)值指定到來(lái)的TCP/IP連接的偵聽隊(duì)列的大小。
    試圖設(shè)定back_log高于你的操作系統(tǒng)的限制將是無(wú)效的。默認(rèn)值為50。對(duì)于Linux系統(tǒng)推薦設(shè)置為小于512的整數(shù)。
max_connections = n
    MySQL服務(wù)器同時(shí)處理的數(shù)據(jù)庫(kù)連接的最大數(shù)量(默認(rèn)設(shè)置是100)。超過限制后會(huì)報(bào) Too many connections 錯(cuò)誤
key_buffer_size = n
    用來(lái)存放索引區(qū)塊的RMA值(默認(rèn)設(shè)置是8M),增加它可得到更好處理的索引(對(duì)所有讀和多重寫)
record_buffer:
    每個(gè)進(jìn)行一個(gè)順序掃描的線程為其掃描的每張表分配這個(gè)大小的一個(gè)緩沖區(qū)。
    如果你做很多順序掃描,你可能想要增加該值。默認(rèn)數(shù)值是131072(128K)
wait_timeout:
    服務(wù)器在關(guān)閉它之前在一個(gè)連接上等待行動(dòng)的秒數(shù)。
interactive_timeout:
    服務(wù)器在關(guān)閉它前在一個(gè)交互連接上等待行動(dòng)的秒數(shù)。
    一個(gè)交互的客戶被定義為對(duì) mysql_real_connect()使用 CLIENT_INTERACTIVE 選項(xiàng)的客戶。
    默認(rèn)數(shù)值是28800,可以把它改為3600。
skip-name-resolve           
    禁止MySQL對(duì)外部連接進(jìn)行DNS解析,使用這一選項(xiàng)可以消除MySQL進(jìn)行DNS解析的時(shí)間。
    但需要注意,如果開啟該選項(xiàng),則所有遠(yuǎn)程主機(jī)連接授權(quán)都要使用IP地址方式,否則MySQL將無(wú)法正常處理連接請(qǐng)求!
log-slow-queries = slow.log 
    記錄慢查詢,然后對(duì)慢查詢一一優(yōu)化
skip-innodb
skip-bdb
    關(guān)閉不需要的表類型,如果你需要,就不要加上這個(gè)
         
         
# > SHOW VARIABLES LIKE '%query_cache%';
# > SHOW STATUS LIKE 'Qcache%';
如果Qcache_lowmem_prunes的值非常大,則表明經(jīng)常出現(xiàn)緩沖不夠的情況;
如果Qcache_hits的值非常大,則表明查詢緩沖使用非常頻繁,如果該值較小反而會(huì)影響效率,那么可以考慮不用查詢緩沖;
如果Qcache_free_blocks的值非常大,則表明緩沖區(qū)中碎片很多。
 
 
##########################################
######      max_allowed_packet      ######
##########################################

通信信息包是發(fā)送至MySQL服務(wù)器的單個(gè)SQL語(yǔ)句,或發(fā)送至客戶端的單一行。
在MySQL 5.1服務(wù)器和客戶端之間最大能發(fā)送的可能信息包為1GB。
當(dāng)MySQL客戶端或mysqld服務(wù)器收到大于max_allowed_packet字節(jié)的信息包時(shí),將發(fā)出“信息包過大”錯(cuò)誤,并關(guān)閉連接。對(duì)于某些客戶端,如果通信信息包過大,在執(zhí)行查詢期間,了能回遇到“丟失與MySQL服務(wù)器的連接”錯(cuò)誤。
客戶端和服務(wù)器均有自己的max_allowed_packet變量,因此,如你打算處理大的信息包,必須增加客戶端和服務(wù)器上的該變量。
如果你正在使用mysql客戶端程序,其max_allowed_packet變量的默認(rèn)值為16MB。要想設(shè)置較大的值,可用下述方式啟動(dòng)mysql:
mysql> mysql --max_allowed_packet=32M
它將信息包的大小設(shè)置為32MB。
服務(wù)器的默認(rèn)max_allowed_packet值為1MB。如果服務(wù)器需要處理大的查詢,可增加該值(例如,如果準(zhǔn)備處理大的BLOB列)。例如,要想將該設(shè)置為16MB,可采用下述方式啟動(dòng)服務(wù)器:
mysql> mysqld --max_allowed_packet=16M
 
也能使用選項(xiàng)文件來(lái)設(shè)置max_allowed_packet。要想將服務(wù)器的該變量設(shè)置為16MB,可在選項(xiàng)文件中增加下行內(nèi)容:
[mysqld]
max_allowed_packet=16M
增加該變量的值十分安全,這是因?yàn)閮H當(dāng)需要時(shí)才會(huì)分配額外內(nèi)存。例如,僅當(dāng)你發(fā)出長(zhǎng)查詢或mysqld必須返回大的結(jié)果行時(shí)mysqld才會(huì)分配更多內(nèi)存。該變量之所以取較小默認(rèn)值是一種預(yù)防措施,以捕獲客戶端和服務(wù)器之間的錯(cuò)誤信息包,并確保不會(huì)因偶然使用大的信息包而導(dǎo)致內(nèi)存溢出。
如果你正是用大的BLOB值,而且未為mysqld授予為處理查詢而訪問足夠內(nèi)存的權(quán)限,也會(huì)遇到與大信息包有關(guān)的奇怪問題。如果懷疑出現(xiàn)了該情況,請(qǐng)嘗試在mysqld_safe腳本開始增加ulimit -d 256000,并重啟mysqld。

##########################################
#####   MySQL怎樣打開和關(guān)閉數(shù)據(jù)庫(kù)表  #####
##########################################

table_cache, max_connections和max_tmp_tables影響服務(wù)器保持打開的文件的最大數(shù)量。如果你增加這些值的一個(gè)或兩個(gè),你可以遇到你的操作系統(tǒng)每個(gè)進(jìn)程打開文件描述符的數(shù)量上強(qiáng)加的限制。然而,你可以能在許多系統(tǒng)上增加該限制。請(qǐng)教你的OS文檔找出如何做這些,因?yàn)楦淖兿拗频姆椒ǜ飨到y(tǒng)有很大的不同。
table_cache與max_connections有關(guān)。例如,對(duì)于200個(gè)打開的連接,你應(yīng)該讓一張表的緩沖至少有200 * n,這里n是一個(gè)聯(lián)結(jié)(join)中表的最大數(shù)量。

show variables like '%slow%'

Max_used_connections/max_connections =0.85 ---Max_connections

Key_cache_miss_rate=key_reads/key_read_requests 0.1%--Key_buffer_size 對(duì)myisam表有效

key_blocks_used/(key_blocks_used+key_blocks_used)--Key_buffer_size 對(duì)myisam表有效

Created_tmp_disk_tables / Created_tmp_tables <=0.25 --對(duì)應(yīng)的變量:tmp_table_size,max_heap_table_size


Open_tables 量比較大,可以調(diào)整參數(shù)table_cache

thread_created 過大,請(qǐng)配置 thread_cache_size=

查詢緩存(query cache)

  Qcache_free_blocks:緩存中相鄰內(nèi)存塊的個(gè)數(shù)。數(shù)目大說明可能有碎片。FLUSH QUERY CACHE會(huì)對(duì)緩存中的碎片進(jìn)行整理,從而得到一個(gè)空閑塊。

  Qcache_free_memory:緩存中的空閑內(nèi)存。

  Qcache_hits:每次查詢?cè)诰彺嬷忻袝r(shí)就增大

  Qcache_inserts:每次插入一個(gè)查詢時(shí)就增大。命中次數(shù)除以插入次數(shù)就是不中比率。

  Qcache_lowmem_prunes:緩存出現(xiàn)內(nèi)存不足并且必須要進(jìn)行清理以便為更多查詢提供空間的次數(shù)。這個(gè)數(shù)字最好長(zhǎng)時(shí)間來(lái)看;如果這個(gè)數(shù)字在不斷增長(zhǎng),就表示可能碎片非常嚴(yán)重,或者內(nèi)存很少。(上面的 free_blocks和free_memory可以告訴您屬于哪種情況)

  Qcache_not_cached:不適合進(jìn)行緩存的查詢的數(shù)量,通常是由于這些查詢不是 SELECT 語(yǔ)句或者用了now()之類的函數(shù)。

  Qcache_queries_in_cache:當(dāng)前緩存的查詢(和響應(yīng))的數(shù)量。

  Qcache_total_blocks:緩存中塊的數(shù)量。


查詢緩存參數(shù)配置:


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

  | query_cache_min_res_unit | 4096 | 緩存塊的最小大小 4K,過大,容易造成碎片和浪費(fèi)

  | query_cache_size | 203423744 | 查詢緩存大小

  | query_cache_type | ON | 緩存類型,決定緩存什么樣的查詢,示例中表示不緩存 select sql_no_cache 查詢


  | query_cache_wlock_invalidate | OFF |當(dāng)有其他客戶端正在對(duì)MyISAM表進(jìn)行寫操作時(shí),如果查詢?cè)趒uery cache中,是否返回cache結(jié)果還是等寫操作完成再讀表獲取結(jié)果。

查詢緩存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%
----如果查詢緩存碎片率超過20%,可以用FLUSH QUERY CACHE整理緩存碎片,或者試試減小query_cache_min_res_unit,如果你的查詢都是小數(shù)據(jù)量的話。

查詢緩存利用率 = (query_cache_size - Qcache_free_memory) / query_cache_size * 100%
---查詢緩存利用率在25%以下的話說明query_cache_size設(shè)置的過大,可適當(dāng)減小;查詢緩存利用率在80%以上而且Qcache_lowmem_prunes > 50的話說明query_cache_size可能有點(diǎn)小,要不就是碎片太多。

查詢緩存命中率 = (Qcache_hits - Qcache_inserts) / Qcache_hits * 100%

排序使用情況:

Sort_merge_passes | 29 |

  | Sort_range | 37432840 |

  | Sort_rows | 9178691532 |

  | Sort_scan | 1860569 |

調(diào)整的參數(shù):Sort_buffer_size


文件打開數(shù)(Open_files):對(duì)應(yīng)參數(shù)open_files_limit
比較合適的設(shè)置:Open_files / open_files_limit * 100% <= 75%


表鎖情況:
Table_locks_immediate表示立即釋放表鎖數(shù)
Table_locks_waited表示需要等待的表鎖數(shù)
Table_locks_immediate / Table_locks_waited > 5000,最好采用InnoDB引擎

thread_cache_sized :
1G  —> 8
2G  —> 16
3G  —> 32
>3G  —> 64


本文出自:億恩科技【www.allwellnessguide.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線