5
可以使MySQL使用多个内核吗?
我看到了一些专用的MySQL服务器,它们从未使用过多个内核。我比MySQL的DBA开发人员更多,因此需要一些帮助 设定 这些服务器非常繁重,并带有OLAP / DataWarehouse(DW)类型的负载: 主:96GB RAM,8核心+单个RAID 10阵列 测试:具有4核的32GB RAM 最大的数据库为540 GB,总容量约为1.1TB,大部分为InnoDB表 Solaris 10 Intel-64 MySQL 5.5.x 注意:最大的数据库是从OLTP DR服务器复制的数据库,而DW就是从中加载的。它不是完整的DW:仅持续6个月到6周,因此它比OLTP DB小。 在测试服务器上的观察 3个独立的连接 每个都有一个并发的(并且不同) ALTER TABLE...DROP KEY...ADD INDEX 这3个表格分别有2.5、3.8和450万行 CPU使用率上升至25%(一个核心已满),并且没有更高 3个ALTER需要12-25分钟(最小的一个需要4.5分钟) 问题 要使用多个内核需要什么设置或补丁? 也就是说,为什么MySQL不使用所有可用的内核?(与其他RDBMS一样) 是复制的结果吗? 其他注意事项 我了解RDBMS“线程”和OS“线程”之间的区别 我不是在问任何形式的并行性 InnoDB和线程的一些系统变量不是最优的(寻找快速的胜利) 短期而言,我无法更改磁盘布局 可以根据需要调整操作系统 最小的桌子上的单个ALTER TABLE需要4.5分钟(震惊IMO) 编辑1 两者的innodb_thread_concurrency都设置为8。是的,这是错误的,但不会使MySQL使用多个内核 innodb_buffer_pool_size在主数据库上为80GB,在测试中为10GB(另一个实例已关闭)。现在可以了。 innodb_file_per_table =开 编辑2 innodb_flush_log_at_trx_commit = …