mysql最佳化之key_buffer_size

來源:互聯網
上載者:User

標籤:sql   理想   緩衝   read   才有   mysql伺服器   like   reads   rate   

key_buffer_size指定索引緩衝的大小,它決定索引處理的速度,尤其是索引讀的速度。通過檢查狀態值Key_read_requests和Key_reads,可以知道key_buffer_size設定是否合理

key_buffer_size 對MyISAM表效能影響很大.

1、查詢

 mysql> show variables like 'key_buffer_size';  

+-----------------+------------+  

| Variable_name | Value |  

+-----------------+------------+  

| key_buffer_size | 536870912 |  

+-----------------+------------+ 


分配了512MB記憶體給mysql key_buffer_size,我們再看一下key_buffer_size的使用方式:

mysql> show global status like 'key_read%';  

+------------------------+-------------+  

| Variable_name | Value |  

+------------------------+-------------+  

| Key_read_requests | 27813678764 |  

| Key_reads | 6798830 |  

+------------------------+-------------+ 


一共有27813678764個索引讀取請求,有6798830個請求在記憶體中沒有找到直接從硬碟讀取索引,計算索引未命中緩衝的機率:


key_cache_miss_rate = Key_reads / Key_read_requests * 100%



比如上面的資料,key_cache_miss_rate為0.0244%,4000個索引讀取請求才有一個直接讀硬碟,已經很BT了,key_cache_miss_rate在0.1%以下都很好(每1000個請求有一個直接讀硬碟),如果key_cache_miss_rate在0.01%以下的話,key_buffer_size分配的過多,可以適當減少。

MySQL伺服器還提供了key_blocks_*參數:



mysql> show global status like 'key_blocks_u%';  

+------------------------+-------------+  

| Variable_name | Value |  

+------------------------+-------------+  

| Key_blocks_unused | 0 |  

| Key_blocks_used | 413543 |  

+------------------------+-------------+ 


ey_blocks_unused表示未使用的緩衝簇(blocks)數,Key_blocks_used表示曾經用到的最大的blocks數,比如這台伺服器,所有的緩衝都用到了,要麼增加key_buffer_size,要麼就是過渡索引了,把緩衝佔滿了。比較理想的設定:


Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%



mysql> show global status like 'key_writ%';

+--------------------+-------+

| Variable_name      | Value |

+--------------------+-------+

| Key_write_requests | 10    |

| Key_writes         | 1     |

+--------------------+-------+

2 rows in set (0.01 sec)


mysql最佳化之key_buffer_size

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.