mysql - 最佳 MySQL 配置 (my.cnf)

标签 mysql optimization utf-8 innodb my.cnf

以下是我的默认生产 MySQL 配置文件 (my.cnf),用于使用 InnoDB 作为默认存储引擎的纯 UTF-8 设置。

[server]
bind-address=127.0.0.1
innodb_file_per_table
default-character-set=utf8
default-storage-engine=innodb

设置执行以下操作:

  1. 绑定(bind)到 localhost:3306(环回)而不是默认的 *:3306(所有接口(interface))。完成以提高安全性。
  2. 为每个表设置一个表空间。完成以提高可维护性。
  3. 将默认字符集设置为 UTF-8。默认情况下完成以允许轻松国际化。
  4. 将默认存储引擎设置为 InnoDB。默认情况下允许行级锁定。

假设您可以通过添加最多三 (3) 个配置参数来进一步改进设置。您会添加哪个?为什么?

在这种情况下,改进意味着性能改进、可靠性改进或易用性/易维护性提高。您可以假设运行 MySQL 实例的机器将有 1000 MB 的 RAM。

最佳答案

缓存更多数据:

innodb_buffer_pool_size = 512M

如果你写入大量数据:

innodb_log_file_size = 128M

,避免日志切换过多。

在任何情况下我都不会添加第三个,所有其他取决于。

关于mysql - 最佳 MySQL 配置 (my.cnf),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167056/

相关文章:

python - 'coding=utf8' 和 '-*- coding: utf-8 -*-' 有什么区别?

带有外来字符的 php sprintf()?

C# MySqL 恢复代码

php - Magento 自动将对象保存为 EAV 值

machine-learning - 特征工程和超参数优化之间的区别?

c++ - 为什么 Clang 优化掉 x * 1.0 而不是 x + 0.0?

php - CakePHP 1.3 如何有 2 个不同的登录页面和 2 个表

PHP 从 mysql 中的表中获取数据时出现问题...仅将列名显示为数据

javascript - 这段 JavaScript 代码可以清理吗?

string - UTF-16 编码 - 为什么使用复杂的代理对?