2015-06-17 49 views
0

我在我的數據庫上運行MySQLTuner來檢查是否正常工作,並且最佳,但我對這兩個值使用的單位感到困惑。「關鍵緩衝區大小」和「總MyISAM索引」的單位大小是什麼意思?

這裏是輸出是什麼樣的性能指標

-------- Performance Metrics ------------------------------------------------- 
[--] Up for: 2d 5h 11m 20s (47M q [249.471 qps], 45M conn, TX: 65B, RX: 8B) 
[--] Reads/Writes: 79%/21% 
[--] Total buffers: 1.1G global + 2.7M per thread (300 max threads) 
[!!] Maximum possible memory usage: 1.9G (198% of installed RAM) 
[OK] Slow queries: 0% (43/47M) 
[OK] Highest usage of available connections: 5% (17/300) 
[OK] Key buffer size/total MyISAM indexes: 600.0M/128.0K 
[OK] Key buffer hit rate: 100.0% (17K cached/0 reads) 
[OK] Query cache efficiency: 98.1% (46M cached/47M selects) 
[!!] Query cache prunes per day: 22728 
[OK] Sorts requiring temporary tables: 0% (9 temp sorts/65K sorts) 
[!!] Joins performed without indexes: 2839 
[OK] Temporary tables created on disk: 0% (235 on disk/42K total) 
[OK] Thread cache hit rate: 99% (79 created/45M connections) 
[!!] Table cache hit rate: 1% (400 open/27K opened) 
[OK] Open file limit used: 0% (0/1K) 
[OK] Table locks acquired immediately: 100% (1M immediate/1M locks) 
[!!] Connections aborted: 99% 
[!!] InnoDB data size/buffer pool: 6.5G/128.0M 

但我的問題是關於這一行

[OK] Key buffer size/total MyISAM indexes: 600.0M/128.0K 

我不知道是什麼單位的意思,或如何不同,他們是在尺寸方面。什麼是'M'和'K'

我知道我的密鑰緩衝區大小應該比MyISAM索引大,但我不知道是不是因爲我不瞭解單位。我已經在網上找到了,但找不到我正在尋找的答案。如果有人可以請澄清這一點我真的很感激它。

回答

1

你確定你看過文檔。報價從MySQL Documentation:

爲了最大限度地減少磁盤I/O,MyISAM存儲引擎採用了緩存 機制,以保持最經常訪問的表塊內存:

索引塊,一個特殊的結構,稱爲關鍵緩存(或密鑰 緩衝區)被維護。

要控制密鑰緩存的大小,請使用key_buffer_size系統 變量。

如果沒有錯那些大小單位;這裏M代表百萬字節,K代表千字節。

+0

我想你誤解了我的問題。我正在尋找M和K的含義,但有人在serverfault上回答了這個問題。 「M是兆字節,K是千字節」。這聽起來很明顯,實際上我認爲是這種情況,但是我想確保在對數據庫進行更改之前。但是,謝謝你的輸入。我確實需要閱讀MSQL文檔。 –

+1

好吧,就像'600.0M/128.0K'意味着使用128K,而最大設置爲600M。 – Rahul

1

所有MyISAM表的索引(.MYI文件)的總大小爲128KB(千字節)。因此key_buffer_size = 600M(兆字節)是矯枉過正的。