将十个数据库复制到一个数据库时,为什么MySQL的CPU使用率很高?

时间:2019-02-07 22:14:18

标签: mysql cpu-usage

我有一个使用MyISAM表的MySQL 5.5.49服务器。我有10个数据库,总共约有170,000个表。 Windows 2012 R2服务器具有46.9GB的RAM和48个内核。通过这种设置,MySQL大约使用5%-10%的CPU,大约300位用户在应用程序上投入了精力。我需要为所有具有这些表的应用程序升级创建一个数据库。当我创建一个数据库并将所有表复制到一个数据库文件夹中时,MySQL开始将所有核心与175个以上的用户挂钩,应用程序将进行爬网。有什么建议吗?

应用程序使用的MySQL用户是很久以前创建的,具有以下权限:

grant all privileges on *.* to 'appUser'@'%' identified by 'somepassword' with grant option

当我运行“显示完整的进程列表”时,我得到很多类似以下内容的行(使用不同的主机和时间)。我没有使用相同代码的10个数据库获得这些结果,而且这些都是MySQL内部查询。我没有看到任何实际查询:

Id  User    Host    db  Command Time    State   Info
101 appUser 10.1.1.20:58414 dbnew   Query   45  checking  permissions   
SELECT TABLE_NAME, TABLE_COMMENT, TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE()AND ( TABLE_TYPE='BASE TABLE' OR TABLE_TYPE='VIEW' ) AND TABLE_NAME LIKE 'randomTableName'
108 appUser 10.1.1.21:49393 dbnew   Query   41  checking permissions    
SELECT TABLE_NAME, TABLE_COMMENT, TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE()AND ( TABLE_TYPE='BASE TABLE' OR TABLE_TYPE='VIEW' ) AND TABLE_NAME LIKE 'randomTableName'

.
.
.
511 appUser 127.0.0.1:53015 NULL    Query   0   NULL    show full processlist

最后,这是my.ini:

[mysqld]

default-storage-engine=MYISAM
skip-name-resolve
wait_timeout=259200

port=3306

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# CACHES AND LIMITS #
max-connections                = 2000
max-allowed-packet             = 3M

tmp-table-size                 = 64M
max-heap-table-size            = 64M

#query-cache-type              = 0
query-cache-size               = 0M

thread-cache-size              = 100

open-files-limit               = 65536

table-definition-cache         = 2M
table-open-cache               = 256K
table_cache                    = 10000

#*** MyISAM Specific options

myisam_max_sort_file_size       =100G
myisam_sort_buffer_size         =39M

key_buffer_size                 =6G

read_buffer_size                =64K
read_rnd_buffer_size            =256K
sort_buffer_size                =256K

此时进入innodb是不可行的。

0 个答案:

没有答案