首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有许多数据库会影响MySQL性能吗?

有许多数据库会影响MySQL性能吗?
EN

Database Administration用户
提问于 2014-04-19 10:51:39
回答 2查看 1.5K关注 0票数 2

我在MySQL中有大量未使用的数据库。它们是否会影响我的MySQL引擎性能,即使它们未使用?他们自己消耗记忆吗?

谢谢

EN

回答 2

Database Administration用户

发布于 2014-04-19 13:00:21

我唯一能看到的性能问题是在INFORMATION_SCHEMA数据库上(请参阅我的post 信息是怎样的_用MySQL实现的模式?)。

如果您有关于表是否存在的查询,获取表大小(例如:请参阅我的post MySQL工作台数据库大小),以及类似的内容,MySQL将花费时间在操作系统中筛选此类元数据。获取InnoDB表和分区MyISAM表上的元数据将使INFORMATION_SCHEMA受到最严重的打击,因为它必须打开许多文件句柄。

除此之外,您对工作数据集的常规查询应该是可以的。

票数 1
EN

Database Administration用户

发布于 2014-04-21 10:36:44

有一些方面您必须考虑磁盘空间和碎片。

MySQL的两个主要存储引擎是MyISAM和InnoDB。

MyISAM

访问MyISAM表时,数据总是从MyISAM表的.MYD文件中读取。在访问索引时,索引页存储在MyISAM密钥缓存中(按key_buffer_size大小)。在这种情况下,如果您从未访问过MyISAM表,则索引页永远不会加载到内存中。

InnoDB

访问InnoDB表时,将读取的数据和索引页加载到InnoDB缓冲池(按innodb_buffer_pool_size大小)。在这种情况下,如果您从未访问InnoDB表,则数据页和索引页永远不会加载到内存中。

如果禁用了innodb_file_per_table,那么所有数据和索引页都将驻留在系统表空间文件ibdata1中。然后,拥有一个包含大量未使用表的大型ibdata1可能会引入碎片,这可能会降低对InnoDB表的访问速度。如果您使用的是MySQL 5.5/5.6,这不应该是一个值得担心的问题。

摘要

有一些选项和结构可用于预加载索引页(以及InnoDB的数据页)。尽管如此,只要您不访问这些存档表,您在所有其他方面都应该是安全的。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/63512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档