zoukankan      html  css  js  c++  java
  • 让MySQL在美国标准下运行

    美国标准下运行的MySQL会有哪方面的调整

      我不得不说,这里有点标题党了;事实上我想说的就是--ansi模式下启动mysqld进行,但是这个ansi我没有找到更好的译文,就给译成了“美国标准”了。

      --ansi 模式下运行的MySQL和默认情况下的MySQL有什么不同呢?

      

      --ansi 模式只在两个方面影响MySQL 1): SQL_MODE 2): 事务的隔离级别

    MySQL-8.0.x默认情况下的sql_mode和隔离级别

      1):SQL_MODE:

    select @@sql_mode;                                                                                    
    +-----------------------------------------------------------------------------------------------------------------------+
    | @@sql_mode                                                                                                            |
    +-----------------------------------------------------------------------------------------------------------------------+
    | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
    +-----------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

      2):隔离级别

    select @@transaction_isolation;                                                                       
    +-------------------------+
    | @@transaction_isolation |
    +-------------------------+
    | REPEATABLE-READ         |
    +-------------------------+
    1 row in set (0.00 sec)

    美国标准下MySQL的SQL_MODE和隔离级别

      在MySQL启动时加上 --ansi 选项就能让MySQL以美国标准运行

    mysqld --ansi &

      1): SQL_MODE

    select @@sql_mode;
    +--------------------------------------------------------------------------------+
    | @@sql_mode                                                                     |
    +--------------------------------------------------------------------------------+
    | REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI |
    +--------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

      2): 隔离级别

    select @@transaction_isolation;
    +-------------------------+
    | @@transaction_isolation |
    +-------------------------+
    | SERIALIZABLE            |
    +-------------------------+
    1 row in set (0.00 sec)

    美国标准下对MySQL的影响

      我感觉影响也要从两个方面来谈起,其一是SQL_MODE 由于SQL_MODE的变更直接影响到了“数据校验”和“SQL语法”,

      由于美国标准更改了SQL_MODE所以它一定就影响到了这两个点;

      其二是事务的“隔离级别”美国标准下的隔离级别是“序列化的”比默认的“可重复读更高”了。

    -----------------------------http://www.sqlpy.com-------------------------------------------------

    学习交流&我的站点

    -----------------------------http://www.sqlpy.com-------------------------------------------------

  • 相关阅读:
    SQL Server中的事务日志管理(7/9):处理日志过度增长
    SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理
    如何阻止SELECT * 语句
    SQL Server中的事务日志管理(5/9):完整恢复模式里的日志管理
    SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理
    SQL Server中的事务日志管理(3/9):事务日志,备份与恢复
    SQL Server中的事务日志管理(2/9):事务日志架构概述
    在SQL Server里如何进行页级别的恢复
    SQL Server中的事务日志管理(1/9):事务日志概况
    第24/24周 数据库维护(Database Maintenance)
  • 原文地址:https://www.cnblogs.com/JiangLe/p/9570200.html
Copyright © 2011-2022 走看看