"key buffer size" 和 "total MyISAM indexes" 单位大小是什么意思?
What do "key buffer size" and "total MyISAM indexes" unit sizes mean?
我 运行 我的数据库上的 MySQLTuner 来检查事情是否正常和最佳地工作,但我对这两个值使用的单位感到困惑。
这是性能指标的输出结果
-------- 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 索引,但我不知道是不是因为我不了解单位。我已经在网上找到了,但找不到我要找的答案。如果有人可以为我澄清这一点,我将不胜感激。
您确定查看了文档吗?引用自 MySQL Documentation:
To minimize disk I/O, the MyISAM storage engine employs a cache
mechanism to keep the most frequently accessed table blocks in memory:
For index blocks, a special structure called the key cache (or key
buffer) is maintained.
To control the size of the key cache, use the key_buffer_size system
variable.
如果没记错就是尺码单位;这里 M
代表兆字节,K
代表千字节。
所有 MyISAM 表的索引(.MYI 文件)的总大小为 128KB(千字节)。因此 key_buffer_size = 600M
(兆字节)太过分了。
我 运行 我的数据库上的 MySQLTuner 来检查事情是否正常和最佳地工作,但我对这两个值使用的单位感到困惑。
这是性能指标的输出结果
-------- 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 索引,但我不知道是不是因为我不了解单位。我已经在网上找到了,但找不到我要找的答案。如果有人可以为我澄清这一点,我将不胜感激。
您确定查看了文档吗?引用自 MySQL Documentation:
To minimize disk I/O, the MyISAM storage engine employs a cache mechanism to keep the most frequently accessed table blocks in memory:
For index blocks, a special structure called the key cache (or key buffer) is maintained.
To control the size of the key cache, use the key_buffer_size system variable.
如果没记错就是尺码单位;这里 M
代表兆字节,K
代表千字节。
所有 MyISAM 表的索引(.MYI 文件)的总大小为 128KB(千字节)。因此 key_buffer_size = 600M
(兆字节)太过分了。