LOSTinDB Asked: 2016-06-22 16:01:20 +0800 CST2016-06-22 16:01:20 +0800 CST 2016-06-22 16:01:20 +0800 CST 休眠数据库会影响服务器性能吗? 772 在我们的 Web 服务器上,我的团队一直在 MySQL 中创建新数据库来管理备份。他们只是创建新的 database_DATE 并复制我们的实时站点。这让我今天想到......拥有一个数据库(永远不可能被使用)会影响服务器的性能(猜测内存)吗? mysql performance 2 个回答 Voted RolandoMySQLDBA 2016-06-22T16:35:02+08:002016-06-22T16:35:02+08:00 是的你是对的。休眠数据库使用内存 多年来我在以下帖子中提到了这一点 Nov 13, 2015: #1041 - mysql 内存不足问题 Apr 22, 2014:不活动的 MySQL 数据库会消耗内存吗? Apr 21, 2014:添加新表——内存使用量增加 很多桌子?很多列?当然,这是供 mysqld 使用的较少内存。 你刚刚问 有没有办法确保数据库不使用内存? 如果您从不访问表,则没有数据或索引页会触及InnoDB 缓冲池、MyISAM 密钥缓存或任何会话的read_buffer或read_rnd_buffer。 尽管如此,拥有太多包含大量列的表只会导致大量休眠的 information_schema 内存。每个表中的行数和任何表的大小都不重要。 Best Answer Rick James 2016-07-03T10:51:58+08:002016-07-03T10:51:58+08:00 情况 1:一个额外的表或数据库最终将被推出缓存。它是无害的。解决(但不值得做):重新启动 mysqld。 案例 2:“系统”正在构建数千个表和/或数据库。每个表/数据库至少涉及包含操作系统目录中的一个条目。随着这个目录变得越来越满,操作系统访问文件/目录(因此表/数据库)的操作变慢。诚然,在影响是痛苦的之前,需要数千甚至数万个这样的条目,但影响是存在的。解决方法:停止构建如此多的表/数据库,以及DROP多余的内容。 Case 3:某人或某事做SHOW DATABASES或SHOW TABLES或SELECT ... FROM information_schema ...并且对表/数据库的数量敏感。这些操作会将内容加载到内存中,可能会耗尽一些缓存(例如table_open_cache)解决方法:与情况 1 和情况 2 相同。 底线:当有数百个这样的数据库时,告诉他们清理他们的行为!(到那时,别担心。)
是的你是对的。休眠数据库使用内存
多年来我在以下帖子中提到了这一点
Nov 13, 2015
: #1041 - mysql 内存不足问题Apr 22, 2014
:不活动的 MySQL 数据库会消耗内存吗?Apr 21, 2014
:添加新表——内存使用量增加很多桌子?很多列?当然,这是供 mysqld 使用的较少内存。
你刚刚问
如果您从不访问表,则没有数据或索引页会触及InnoDB 缓冲池、MyISAM 密钥缓存或任何会话的read_buffer或read_rnd_buffer。
尽管如此,拥有太多包含大量列的表只会导致大量休眠的 information_schema 内存。每个表中的行数和任何表的大小都不重要。
情况 1:一个额外的表或数据库最终将被推出缓存。它是无害的。解决(但不值得做):重新启动 mysqld。
案例 2:“系统”正在构建数千个表和/或数据库。每个表/数据库至少涉及包含操作系统目录中的一个条目。随着这个目录变得越来越满,操作系统访问文件/目录(因此表/数据库)的操作变慢。诚然,在影响是痛苦的之前,需要数千甚至数万个这样的条目,但影响是存在的。解决方法:停止构建如此多的表/数据库,以及
DROP
多余的内容。Case 3:某人或某事做
SHOW DATABASES
或SHOW TABLES
或SELECT ... FROM information_schema ...
并且对表/数据库的数量敏感。这些操作会将内容加载到内存中,可能会耗尽一些缓存(例如table_open_cache
)解决方法:与情况 1 和情况 2 相同。底线:当有数百个这样的数据库时,告诉他们清理他们的行为!(到那时,别担心。)