我的MYSQL非常慢,但是当我将innodb_thread_concurrency值从缺省值33改为0时,每秒选择数从30-40增加到600-700。我想在每次数据库启动时设置此值。我通常在my.ini中更改变量。我的系统上有3个my.ini文件,但正在使用的文件(在MYSQL Workbench中列出)在programdata目录中。我已经尝试将变量添加到所有3个变量中,但没有什么不同。我一定是把语法搞错了,但我已经尝试了几个变体: innodb_thread_concurrency=0 set-variable=innodb_thread_concurrency=0 =0似乎都不起作用。每当我查看系统变量(在MYSQL Workbench中)时,innodb_thread_concurrency都是33,直到我启动一个会话并输入: set global innodb_thread_concurrency=0;在Unix系统上,他们谈论my.cnf,但是在我的W10系统上没有这样的文件。
我需要做什么才能在启动时正确设置这个变量?
发布于 2020-05-31 19:05:27
正确的语法是:
innodb_thread_concurrency=0确保将其添加到文件的[mysqld]部分。
发布于 2020-06-01 02:25:44
在Windows上,my.ini文件可能位于多个位置。请参阅https://dev.mysql.com/doc/refman/8.0/en/option-files.html
%WINDIR%\my.ini, %WINDIR%\my.cnf
C:\my.ini, C:\my.cnf
BASEDIR\my.ini, BASEDIR\my.cnfBASEDIR表示MySQL的基本安装目录。如果使用MySQL Installer安装了Windows8.0,则通常为C:\PROGRAMDIR\MySQL\MySQL 8.0 Server,其中PROGRAMDIR表示程序目录(在英语版本的MySQL上通常为Program Files )
医生还说:
在Windows上,MySQL程序按指定的顺序从下表中显示的文件中读取启动选项(首先读取列出的文件,然后读取文件)。
这意味着如果您在多个位置有一个选项文件,MySQL服务器将按照我列出的顺序读取所有这些文件。如果后续文件包含innodb_thread_concurrency的设置,则它设置的值将替换早期文件中设置的值。就像在一个文件中设置较低值一行替换了文件中较早设置的值一样。
因此,请确保您彻底检查了所有文件,以确保选项文件中的更改不会被后面的行取代!
发布于 2020-06-05 03:16:18
多亏了威尔逊·哈克,这是一个非常奇怪的默认设置(我相信只适用于Solaris系统),我从未想过要查看,但文件下面还有另一个条目将其设置为33!删除了这一点,所有的工作都像预期的那样。
https://stackoverflow.com/questions/62114848
复制相似问题