程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 實例分析:MySQL優化經驗

實例分析:MySQL優化經驗

編輯:關於MYSQL數據庫

  同時在線訪問量繼續增大,對於1G內存的服務器明顯感覺到吃力,嚴重時甚至每天都會死機,或者時不時的服務器卡一下,這個問題曾經困擾了我半個多月。MySQL使用是很具伸縮性的算法,因此你通常能用很少的內存運行或給MySQL更多的內存以得到更好的性能。

  安裝好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  目前剩余緩存空間

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一頁
  • 尾頁
  • 共6頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved