程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL數據庫優化經歷詳談(辦事器通俗設置裝備擺設)第1/3頁

MySQL數據庫優化經歷詳談(辦事器通俗設置裝備擺設)第1/3頁

編輯:MySQL綜合教程

MySQL數據庫優化經歷詳談(辦事器通俗設置裝備擺設)第1/3頁。本站提示廣大學習愛好者:(MySQL數據庫優化經歷詳談(辦事器通俗設置裝備擺設)第1/3頁)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL數據庫優化經歷詳談(辦事器通俗設置裝備擺設)第1/3頁正文


裝置好mysql後,配制文件應當在/usr/local/mysql/share/mysql目次中,配制文件有幾個,有my- huge.cnf my-medium.cnf my-large.cnf my-small.cnf,分歧的流量的網站和分歧配制的辦事器情況,固然須要有分歧的配制文件了。

普通的情形下,my-medium.cnf這個配制文件就可以知足我們的年夜多須要;普通我們會把設置裝備擺設文件拷貝到/etc/my.cnf 只須要修正這個設置裝備擺設文件便可以了,應用mysqladmin variables extended-status –u root –p 可以看到今朝的參數,有3個設置裝備擺設參數是最主要的,即:


key_buffer_size
query_cache_size
table_cache

key_buffer_size只對MyISAM表起感化。

key_buffer_size指定索引緩沖區的年夜小,它決議索引處置的速度,特別是索引讀的速度。普通我們設為16M,現實上略微年夜一點的站點 這個數字是遠遠不敷的,經由過程檢討狀況值Key_read_requests和Key_reads,可以曉得key_buffer_size設置能否公道。比例key_reads / key_read_requests應當盡量的低,至多是1:100,1:1000更好(上述狀況值可使用SHOW STATUS LIKE ‘key_read%'取得)。 或許假如你裝了phpmyadmin 可以經由過程辦事器運轉狀況看到,筆者推舉用phpmyadmin治理mysql,以下的狀況值都是自己經由過程phpmyadmin取得的實例剖析:

這個辦事器曾經運轉了20天


key_buffer_size – 128M
key_read_requests – 650759289
key_reads - 79112

比例接近1:8000 安康狀態異常好

別的一個估量key_buffer_size的方法:把你網站數據庫的每一個表的索引所占空間年夜小加起來看看以此辦事器為例:比擬年夜的幾個表索引加起來年夜概125M 這個數字會跟著表變年夜而變年夜。

從4.0.1開端,MySQL供給了查詢緩沖機制。應用查詢緩沖,MySQL將SELECT語句和查詢成果寄存在緩沖區中,往後關於異樣的SELECT語句(辨別年夜小寫),將直接從緩沖區中讀取成果。依據MySQL用戶手冊,應用查詢緩沖最多可以到達238%的效力。

經由過程調理以下幾個參數可以曉得query_cache_size設置得能否公道


Qcache inserts
Qcache hits
Qcache lowmem prunes
Qcache free blocks
Qcache total blocks

Qcache_lowmem_prunes的值異常年夜,則注解常常湧現緩沖不敷的情形,同時Qcache_hits的值異常年夜,則注解查詢緩沖應用異常頻仍,此時須要增長緩沖年夜小Qcache_hits的值不年夜,則注解你的查詢反復率很低,這類情形下應用查詢緩沖反而會影響效力,那末可以斟酌不消查詢緩沖。另外,在SELECT語句中參加SQL_NO_CACHE可以明白表現不應用查詢緩沖。

Qcache_free_blocks,假如該值異常年夜,則注解緩沖區中碎片許多query_cache_type指定能否應用查詢緩沖

我設置:


query_cache_size = 32M
query_cache_type= 1

獲得以下狀況值:


Qcache queries in cache 12737 注解今朝緩存的條數
Qcache inserts 20649006
Qcache hits 79060095  看來反復查詢率還挺高的
Qcache lowmem prunes 617913 有這麼屢次湧現緩存太低的情形
Qcache not cached 189896   
Qcache free memory 18573912  今朝殘剩緩存空間
Qcache free blocks 5328 這個數字仿佛有點年夜 碎片很多
Qcache total blocks 30953

假如內存許可32M應當要往上加點

table_cache指定表高速緩存的年夜小。每當MySQL拜訪一個表時,假如在表緩沖區中還有空間,該表就被翻開並放入個中,如許可以更快地拜訪表內容。經由過程檢討峰值時光的狀況值Open_tables和Opened_tables,可以決議能否須要增長table_cache的值。假如你發明open_tables等於table_cache,而且opened_tables在赓續增加,那末你就須要增長table_cache的值了(上述狀況值可使用SHOW STATUS LIKE ‘Open%tables'取得)。留意,不克不及自覺地把table_cache設置成很年夜的值。假如設置得太高,能夠會形成文件描寫符缺乏,從而形成機能不穩固或許銜接掉敗。

關於有1G內存的機械,推舉值是128-256。

筆者設置table_cache = 256

獲得以下狀況:


Open tables 256
Opened tables 9046

固然open_tables曾經等於table_cache,然則絕對於辦事器運轉時光來講,曾經運轉了20天,opened_tables的值也異常低。是以,增長table_cache的值應當用途不年夜。假如運轉了6個小時就湧現上述值 那就要斟酌增年夜table_cache。
以後1/3頁 123下一頁浏覽全文

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved