• MySQL系统变量


    6. log_output

    功能:决定通用查询日志和慢查询日志的输出位置

    取值:TABLE(输出到表),FILE(默认值,输出到文件),NONE(不输出,优先级高),以逗号分隔的关键字列表

    说明:

    ①log_output = NONE时,通用查询日志和慢查询日志无论是否开启,均不起作用

    ②FILE的性能优于TABLE

    类型:全局系统变量

    设置:set log_output = FILE;



    5. slow_query_log

    功能:开启/关闭慢查询日志

    取值:0关闭,1开启

    类型:全局系统变量

    设置:set slow_query_log = 1;

    说明:慢查询日志起作用的前提是,log_output全局系统变量为FILE



    4. innodb_buffer_pool_instances



    3. innodb_file_per_table

    功能对后续新创建的InnoDB表,使用的表空间类型为FILE_PER_TABLE

    取值:0开启,1关闭

    作用域:全局

    类型:动态变量,随时设置随时生效

    设置:set global innodb_file_per_table = 1;


    说明

    开启该设置后,后续新创建的InnoDB表,其索引和数据,放入自己的表空间,即对应数据库目录下的同名.ibd文件。

    关闭该设置后,新表的索引和数据,放入系统表空间,即顶层数据目录下的ibdata文件。


    好处:

    1. 



    2. wait_timeout

    功能:决定超时时间

    作用域:全局和会话

    类型:动态变量,随时设置随时生效

    取值:[1, 31536000],单位秒,跨度:1秒——1年,系统默认值28800(8小时)


    说明

    存在一个全局wait_timeout,每个连接又有各自的wait_timeout、是为会话级wait_timeout。

    会话级wait_timeout在连接建立时被初始化,初始值由client连接类型决定:

    连接选项包含CLIENT_INTERACTIVE,由全局interactive_timeout初始化,如navicat premium的命令行界面;

    否则,由全局wait_timeout初始化,如mysql-connector/c++的Connection* sql::Driver::connect()


    设置

    set global wait_timeout = n1;

    set session wait_timeout = n2;

    设置全局级wait_timeout对当前会话级wait_timeout无任何影响,当前会话级wait_timeout已在连接建立时初始化。该设置对后续新建连接的会话级wait_timeout的影响取决于client的连接类型。如果想改变当前会话级wait_timeout,需要显示调用语句二。


    查看

    show global variables like "wait_timeout";

    show session variables like "wait_timeout";



    1. innodb_flush_log_at_trx_commit

    功能:决定log buffer写入log file最后刷到磁盘的时机

    影响:insert操作的速度

    取值:0, 1, 2

            0——每秒写入一次,伴随着刷新一次

            1——每当有事物提交,即写入一次刷新一次

            2——每当有事物提交,即写入一次,刷新为每秒一次

    作用域:全局

    类型:动态变量,随时设置随时生效

    设置:set global innodb_flush_log_at_trx_commit = 0;

    说明:设置成功后,所有会话均受影响;MySQL重启后,该变量由配置文件初始化,默认为1


    安全性:1 > 2 > 0

            进程mysqld崩溃,type0一秒内的事物全丢;

            操作系统崩溃或意外断电,type2一秒内的事物全丢;

            type1符合ACID,安全级别最高。


    测试

    表结构:


    测试工具:mysqlslap

    测试条件:单用户执行1000次insert,insert内容相同。

    结果:speed0 = 2 * speed2 = 8 * speed1



    前言

    系统变量的作用域,包括全局级和会话级。

    允许一个变量,既有全局级对象,又有会话级对象,如global var_name和session var_name同时存在。

    若系统变量同时拥有全局级对象和会话级对象,则有如下结论: 

    1. 全局级作为会话级的初始默认值

    2. 由会话级控制具体行为


    例如,假设存在系统变量Mario,功能:控制是否修水管,作用域:全局和会话,则有如下结论:

    1. 每个新进连接的session Mario由global Mario初始化;

    2. 某时刻,global Mario改变,不影响已打开连接的session Mario。只影响后续打开连接的session Mario;

    3. 每个连接,是否修水管的行为,由该连接的session Mario值决定,与当前global Mario值无关。

  • 相关阅读:
    对象,对象引用变量理解
    String 和 new String()的区别
    基本类型和对象类型的区别
    MySQL数据库设计总结
    CSS自定义字体的实现,前端实现字体压缩
    GitHub密钥生成
    ES3、ES5、ES6对象代理的写法差异
    Node.js+Navicat for MySQL实现的简单增删查改
    Vue项目部署到服务器
    Node.js+Navicat for MySQL实现的简单增删查改
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/7475591.html
Copyright © 2020-2023  润新知