无法利用 MySQL 的最大 CPU 和内存使用量

ste*_*hen 8 mysql innodb performance wamp

再会。

我知道这可能是其他问题的重复,但是我已经在许多线程中应用了所有建议,但我仍然遇到同样的问题。

我有一个使用 max 的存储过程3 tables。当我运行该程序时,只30% of my CPU使用了大约25% of RAM.

我坐在一个CPU with 4 cores and 16GB RAM.

my.ini 如下所示:

[client]
port        = 3306
socket      = /tmp/mysql.sock

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 512M
max_allowed_packet = 32M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
thread_cache_size = 16
query_cache_size= 32M
thread_concurrency = 0

log-bin=mysql-bin

binlog_format=mixed

server-id   = 1

innodb_buffer_pool_size = 12G
innodb_log_buffer_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_read_io_threads = 64
innodb_write_io_threads = 64

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
Run Code Online (Sandbox Code Playgroud)

是被调用的过程的性质导致mysql无法充分利用硬件还是我的配置?

我正在运行,XAMPP但后来意识到它是 32 位的,所以我切换到 64 位版本的WAMP. 我使用 32 位MySQLWorkbench来运行查询。

我正在使用InnoDB engine.

使用MySQL Ver 14.14 Distrib 5.5.24 Win64 (x86).

Nat*_*lly 7

High Performance MySQL的作者相当简洁地描述了您的部分问题(第 234 页):

MySQL 无法在多个 CPU 上并行执行单个查询。这是一些其他数据库服务器提供的功能,但不是 MySQL。

运行单个存储过程将使用不超过 1 个 CPU 内核来执行查询,其他内核会被各种后台和工作线程使用,例如执行 I/O 的内核。当同时运行多个查询时,MySQL 才会真正使用多核或多处理器系统的全部功能。

如果您看到1 个内核的 30%被使用,则表明存在潜在问题,但单个查询的 4 个内核中有 1.2 个内核是很正常的。