Mysql配置服务器

官网地址:MySQL :: MySQL 5.7 Reference Manual :: 5.1.1 Configuring the Server

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

MySQL 5.7 参考手册 / ... / 配置服务器

5.1.1 配置服务器

MySQL 服务器mysqld有许多命令选项和系统变量,可以在启动时设置它们来配置其操作。要确定服务器使用的默认命令选项和系统变量值,请执行以下命令:

language-terminal 复制代码
$> mysqld --verbose --help

该命令生成所有mysqld选项和可配置系统变量 的列表 。其输出包括默认选项和变量值,如下所示:

language-terminal 复制代码
abort-slave-event-count           0
allow-suspicious-udfs             FALSE
archive                           ON
auto-increment-increment          1
auto-increment-offset             1
autocommit                        TRUE
automatic-sp-privileges           TRUE
avoid-temporal-upgrade            FALSE
back-log                          80
basedir                           /home/jon/bin/mysql-5.7/
...
tmpdir                            /tmp
transaction-alloc-block-size      8192
transaction-isolation             REPEATABLE-READ
transaction-prealloc-size         4096
transaction-read-only             FALSE
transaction-write-set-extraction  OFF
updatable-views-with-limit        YES
validate-user-plugins             TRUE
verbose                           TRUE
wait-timeout                      28800

要查看服务器运行时实际使用的当前系统变量值,请连接到它并执行以下语句:

language-sql 复制代码
mysql> SHOW VARIABLES;

要查看正在运行的服务器的一些统计和状态指示器,请执行以下语句:

language-sql 复制代码
mysql> SHOW STATUS;

系统变量和状态信息也可以使用mysqladmin命令 获得 :

language-terminal 复制代码
$> mysqladmin variables
$> mysqladmin extended-status

有关所有命令选项、系统变量和状态变量的完整说明,请参阅以下部分:

性能架构中提供了更详细的监控信息;请参阅第 25 章,MySQL 性能架构。此外,MySQL sysschema 是一组对象,可以方便地访问 Performance Schema 收集的数据;请参阅第 26 章,MySQL sys 架构

MySQL 使用非常可扩展的算法,因此通常可以用很少的内存来运行。然而,通常为 MySQL 提供更多内存会带来更好的性能。

调整 MySQL 服务器时,要配置的两个最重要的变量是key_buffer_sizetable_open_cache。在尝试更改任何其他变量之前,您应该首先确信自己已正确设置这些变量。

以下示例指示了不同运行时配置的一些典型变量值。

  • 如果您至少有 1-2GB 内存和许多表,并且希望在适度数量的客户端上获得最大性能,请使用如下内容:

    language-terminal 复制代码
    $> mysqld_safe --key_buffer_size=384M --table_open_cache=4000 \
               --sort_buffer_size=4M --read_buffer_size=1M &
  • 如果你只有 256MB 内存和几个表,但你仍然要做很多排序,你可以使用这样的东西:

    language-terminal 复制代码
    $> mysqld_safe --key_buffer_size=64M --sort_buffer_size=1M

    如果有很多并发连接,则可能会出现交换问题,除非mysqld已配置为每个连接使用很少的内存。 如果您有足够的内存用于所有连接, mysqld 的性能会更好。

  • 如果内存很少但连接很多,请使用如下所示的内容:

    language-terminal 复制代码
    $> mysqld_safe --key_buffer_size=512K --sort_buffer_size=100K \
               --read_buffer_size=100K &

    甚至是这个:

    language-terminal 复制代码
    $> mysqld_safe --key_buffer_size=512K --sort_buffer_size=16K \
               --table_open_cache=32 --read_buffer_size=8K \
               --net_buffer_length=1K &

如果您正在对远大于可用内存的表 执行GROUP BY或 操作,请增加 的值以加快排序操作后行的读取速度。 ORDER BYread_rnd_buffer_size

如果您在命令行上为 mysqldmysqld_safe指定一个选项,则该选项仅对服务器的该调用有效。要在服务器每次运行时使用该选项,请将其放入选项文件中。请参见第 4.2.2.2 节"使用选项文件"

相关推荐
islandzzzz1 小时前
三表查询SQL怎么写?----小白初学+案例引入
数据库
卡布奇诺-海晨2 小时前
MySQL的MVCC机制
数据库·mysql
hao_wujing2 小时前
攻击模型的恶意行为检测
网络·数据库·php
秃头摸鱼侠3 小时前
MySQL查询语句(续)
数据库·mysql
MuYiLuck3 小时前
【redis实战篇】第八天
数据库·redis·缓存
睡觉待开机3 小时前
6. MySQL基本查询
数据库·mysql
大熊猫侯佩4 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(三)
数据库·swiftui·swift
大熊猫侯佩4 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(二)
数据库·swiftui·swift
大熊猫侯佩4 小时前
用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化
数据库·swiftui·swift
大熊猫侯佩4 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(一)
数据库·swiftui·swift