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).
High Performance MySQL的作者相当简洁地描述了您的部分问题(第 234 页):
MySQL 无法在多个 CPU 上并行执行单个查询。这是一些其他数据库服务器提供的功能,但不是 MySQL。
运行单个存储过程将使用不超过 1 个 CPU 内核来执行查询,其他内核会被各种后台和工作线程使用,例如执行 I/O 的内核。当同时运行多个查询时,MySQL 才会真正使用多核或多处理器系统的全部功能。
如果您看到1 个内核的 30%被使用,则表明存在潜在问题,但单个查询的 4 个内核中有 1.2 个内核是很正常的。