我收到了一些专用的 MySQL 服务器,它们从不使用超过一个内核。我比 MySQL 的 DBA 更像开发人员,所以需要一些帮助
这些服务器在 OLAP/DataWarehouse (DW) 类型的负载下非常庞大:
注意:最大的 DB 是从 OLTP DR 服务器复制的 DB,DW 是从这里加载的。它不是一个完整的 DW:仅持续 6 个月到 6 周,因此它比 OLTP DB 小。
ALTER TABLE...DROP KEY...ADD INDEX
如果我错过了任何重要的事情,请告诉我
干杯
在 RolandoMySQLDBA 的答案中更改了 innodb_flush_method + 3 x 线程设置 结果:> 1 个核心用于测试 = 阳性结果
我学到了一些令人惊讶的东西:尽管有文档,最好离开innodb_thread_concurrency0(无限并发)。这样,InnoDB 决定innodb_concurrency_tickets为给定的 MySQL 实例设置打开的最佳数量。
innodb_thread_concurrency
innodb_concurrency_tickets
设置innodb_thread_concurrency为 0 后,您可以将innodb_read_io_threads和innodb_write_io_threads(从 MySQL 5.1.38 开始)设置为最大值 64。这应该会占用更多内核。
innodb_read_io_threads
innodb_write_io_threads