我已经使用 Java 8 和 mysql 服务器部署了我的应用程序。运行时 mysqld.exe 占用了高达 130 MB 的 RAM 大小,并且停止增加。但此后我的应用程序性能非常差。有人能帮我找出这背后的原因吗?哪个因素增加了 mysqld.exe 的 RAM 大小以及为什么我的应用程序卡在数据库中。提前致谢
答案1
关系数据库服务器(在我使用过的所有情况下)都会消耗系统中所有可用的 RAM 来缓存和优化搜索算法。您可以指定允许消耗的上限……但在大多数情况下,对于简单的数据库环境来说,默认值通常已经相当不错了。
在当今的服务器中...如果您抱怨 130mb 的 RAM...您就不应该使用 mysql...或任何关系数据库服务器。我构建的数据库服务器设计为“正常”运行,消耗的 RAM 远远超过 100GB。如果您使用的数据库相对较小...并且资源极其有限...请尝试查看 sqlite3 或基于文件的东西,而没有专门的进程来有效地跟踪与什么相关的内容。极其有限的系统资源也意味着您的“性能”永远不会“出色”。
答案2
默认情况下,MySQL 使用最多 128 MB 的 InnoDB 缓冲区。
如果您有更多的内存,请编辑my.cnf
并设置innodb_buffer_pool_size
为更大的值(例如innodb_buffer_pool_size=512M
:),然后重新启动 MySQL。