MariaDB中的线程池与Innodb线程和池设置

时间:2016-06-20 17:34:25

标签: multithreading concurrency innodb mariadb pool

在我开始在MariaDB中使用线程池之前,my.cnf文件具有以下设置以保持SQL服务器稳定。

innodb_additional_mem_pool_size
innodb_buffer_pool_size
innodb_commit_concurrency
innodb_write_io_threads
innodb_read_io_threads
innodb_thread_concurrency
innodb_sort_buffer_size

在我了解到MariaDB免费支持线程池功能后,我添加了 thread_handling =池的线程 在my.cnf中,我重新启动了SQL服务器,一切看起来都很酷,现在我想知道

  1. 上面的Innodb设置仍然有效吗?
  2. MariaDB中的线程池是否管理线程数,内存分配,并发数等?
  3. 最后,在开始使用MariaDB中的线程池后,我是否应该保留这些innodb设置还是应该删除它们?
  4. 谢谢

2 个答案:

答案 0 :(得分:1)

  1. 上面的Innodb设置仍然有效吗?
  2. 是的,他们还算数。 Threadpool不了解innodb细节。它甚至不知道你是否在Innodb表上运行“SELECT 1”或DML语句。一切都是不透明的查询。 Threadpool知道一个线程是在运行还是在等待,并试图在CPU数量上保持运行线程的数量(或者,如果你在Unix上,则为线程池大小)。使用threadpool进行计数的唯一设置是 thread-cache-size

    1. MariaDB中的线程池是否管理线程数,内存分配,并发数等?
    2. 线程数,并发性。不是内存分配。

      1. 最后,在开始使用MariaDB中的线程池后,我是否应该保留这些innodb设置还是应该删除它们?
      2. 不要全部删除它们。 Threadpool不管理缓冲区大小,因此保留这些大小非常重要。但是,您可以实现是保留还是删除 innodb-thread-concurrency, innodb-commit-concurrency ,因为这些可能会被线程池淘汰(它们仍然可以高效虽然重写工作量很大)

答案 1 :(得分:0)

设置......

  • innodb_additional_mem_pool_size - 在MySQL中弃用,在5.7中删除;可能仍然在MariaDB中使用;不是一个非常重要的环境。
  • innodb_buffer_pool_size - 绝对。这仍然是最重要的设置;保持它!
  • 其余的 - 保持。