我们有一个本地 Optiplex PC 设置来运行共享的 MySQL MariaDB 数据库,无法从外部世界访问它。它没有任何需要保护的关键数据。
基本上,不需要安全、加密或管理。从性能角度来看,我们的设置最快的配置是什么?
这是我们当前的配置:
[mysqld]
max_connections=500
join_buffer_size = 2M
tmp_table_size = 24M
max_heap_table_size = 24M
query_cache_size = 256M
key_buffer=256M
key_buffer_size = 1332M
thread_cache_size = 4
table_cache = 500
table_open_cache = 96
innodb_buffer_pool_size = 27M
slow_query_log
local-infile=0
skip-name-resolve
我在 Optiplex 780、core2duo E8500 和 4GB RAM 上运行 Debian 10。我的规格可在此处找到!https://i.dell.com/sites/doccontent/shared-content/data-sheets/en/Documents/optiplex_780_tech_spec_sheet.pdf
答案1
有一堆脚本可以连接到你的 MySQL 服务器,分析正在运行的系统的一些变量和性能统计数据,并提出配置更改建议。最著名的是https://github.com/major/MySQLTuner-perl和https://github.com/BMDan/tuning-primer.sh
答案2
这取决于您有多少 RAM。
query_cache_size
太大。不要分配超过 50M。在最多服务器最好将其关闭。
key_buffer_size = 1332M
innodb_buffer_pool_size = 27M
这些意味着您正在使用较慢的 ENGINE=MyISAM。
这些已被弃用:
key_buffer=256M
table_cache = 500
如果没有关于您的应用程序的线索,就无法提供“最快的速度”。
通常,“慢”服务器之所以慢,是因为缺少索引和/或查询语句不规范,不是配置。
运行一个月,然后提供 Wilson 指出的数据。另外,保持 slowlog 处于打开状态,以便我们能够找到“慢速”查询。
答案3
其中的大多数设置要么毫无意义,要么完全适得其反。
删除它们。确保只使用 InnoDB。将 innodb_buffer_pool 大小调整为 RAM 的 50-80%(但不要大于实际数据)。添加 innodb_file_per_table=1。除非您知道,否则其他所有设置都应保留。确切地您正在做什么以及出于什么特定原因而改变设置。
忽略 MySQL 调整器脚本告诉您的一切。
如果您不关心崩溃时的数据完整性:innodb_doublewrite=0 innodb_flush_logs_on_trx_commit=0
如果您在硬件出现故障时不关心数据完整性:innodb_checksum=none