我有一个运行时与MySQL数据库连接的java / spring / hibernate应用程序。
我们最近从5.6升级到5.7(在Windows服务器上),应用程序从3小时到3天完成。它主要使用hibernate连接从db中检索只读数据,然后再处理它并将结果转储到其他地方。
然而,作为第一步,部分检查它是导致问题的升级版本,我在我的开发机器上安装了5.7.21。然后我注意到,即使进行数据库恢复也需要花费几个小时,而不是过去花费大约10分钟的时间。这让我相信它可能更像是一个配置问题而不是驱动程序'过时了(我确实认为我的第一步是升级应用程序依赖项)。我没有安装服务器,但我安装了我的开发机器,默认开发人员'安装。服务器和开发机器都是64位Windows。
我已经找到了明显的陷阱并且还没有找到任何东西。我只是想知道在我开始认真抨击之前是否有人能指出我正确的方向?我对开箱即用的MySQL有一个很好的基本理解,但我还没有完成很多配置,所以即使指向my.ini中的可能嫌疑人以及调查的最佳方式也会有所帮助。
答案 0 :(得分:1)
升级时,请注意innodb_buffer_pool_size
变量值。
它控制MySQL使用多少内存来加快I / O操作。通常,这是使它飞行或使它像蜗牛一样爬行的那个。关于这个特定的变量还有很多东西要写,有很多关于它的优秀博客文章,所以我不会详细解释它。
要查看当前值,请在MySQL终端中输入:
SHOW VARIABLES LIKE '%innodb_buffer_pool%';
更改配置文件中的值并重新启动MySQL。
对于价值,不要过分,不要超过你的整个RAM。您希望它尽可能高,特别是对于拥有大量数据的服务器。