我一直在阅读如何提高我的数据库的性能,并遇到了一些叫做table-open-cache
和Opened_tables
的东西。MySQL医生告诉我如下:
Opened_tables
已打开的表数。如果Opened_tables
很大,那么您的table_open_cache
值可能太小。
大是什么意思?有多大足够大来增加缓存?好的,我正在检查,打开了多少张桌子,然后看到:
---------------+--------+
| Variable_name | Value |
+---------------+--------+
| Opened_tables | 711353 |
我正在将table-open-cache
提高到32768 (实际上,以前只有2000年),而opened_tables
仍在增长。
一小时后,opened_tables
几乎是750000岁。
20小时后,它是754000,所以增长明显放缓,但仍在继续。
而且,Open tables
在mysqladmin status
中的数量似乎已经停止增长,或者几乎停止了。嗯,它还是每5分钟增加1次左右。
目前,mysqladmin status
告诉我如下:
Opens: 754575 Flush tables: 1 Open tables: 19725 Queries per second avg: 57.912
Opens: 754578 Flush tables: 1 Open tables: 19725 Queries per second avg: 57.912
Opens: 754585 Flush tables: 1 Open tables: 19725 Queries per second avg: 57.912
Opens: 754589 Flush tables: 1 Open tables: 19725 Queries per second avg: 57.912
我连续4次调用它,因此您可以看到,Open tables
没有增长,但是Opens
在增长。
如果Open tables
仍然远离大约21小时前设置为32768的table_opened_cache
值,它怎么会发生呢?
你能给我一些关于调整这个值的建议,并解释一下我在这个时候得到的结果吗?
我有大量的RAM用于我的目的,并将表缓存增加到32k,使服务器使用400 my的内存,但我仍然有14 my的空闲内存。
在这点上,我应该作出甚麽结论呢?
发布于 2020-04-12 20:19:35
通过Uptime
潜入D1
以每秒打开表。但即便如此,也不是很有用。
更有用的是SHOW GLOBAL STATUS LIKE 'table_open_cache%';
的3个值--每秒有几次遗漏或溢出是值得注意的。
还有许多其他的度量标准;提供Wilson提到的数据;请参阅可以进一步挖掘。
启动后只有一个FLUSH TABLES
?别小题大作。
mysqladmin status
没有提供多少有用的信息。
请注意,STATUS
中的值有不同的口味,有许多不同的味道:
https://dba.stackexchange.com/questions/264235
复制相似问题