MYSQL---服务器配置相关问题

相关面试问题

  1. 请分析一个Group By 语句的异常原因
  2. 如何比较系统运行配置和配置文件中配置是否一致?
  3. 举几个mysql 中的关键性能参数

分析Group By 语句异常原因

可能这个问题会被认为是sql语句的原因, 刚开始我也是这么认为的。不过不急,可以思考思考在看看下面解释

假设有一个这样的表
在这里插入图片描述
sql 语句 :
select prodcut_id, warehouse_id, sum(count) as cnt from stock group by product_id;

结果:
在这里插入图片描述
在mysql 中的能执行成功,在其他的数据库可能出现语法错误

为什么能在mysql 中执行成功,是因为在mysql中的一个配置起了作用, 它就是 SQL MODE。

SQL MODE 的作用及设置

SQL_MODE值 : 会影响mysql 执行sql语句的结果。

  1. 配置mysql 处理SQL 的方式
  2. set [session/global/persist] sql_mode = ‘xxxxxx’ (persist是在mysql 8.0 中的)
  3. [mysqld] sql_mode = xxxxxxx
常用的SQL Mode

SQL_MODE= ‘ANSI’ 在这里插入图片描述
SQL_MODE = ‘TRADITIONAL’
在这里插入图片描述

演示 only_full_group_by
  1. 刚开始查看sql_mode
    在这里插入图片描述

  2. 执行sql语句, 可以的看到是执行成功的
    在这里插入图片描述

  3. 修改sql_mode
    在这里插入图片描述

  4. 再次执行上面的sql语句,会报错
    在这里插入图片描述

  5. 此时必须在group by 后面写完整
    在这里插入图片描述

演示 ansi_quotes

使用之后只能用单引号引字符串
在这里插入图片描述

演示 strict_trans_table

用普通模式,字符串插入int 类型 会成功
用严格模式,则会进行检查,字符串不能插入int 类型成功

比较系统运行配置和配置文件中配置

知识点
  1. 使用set 命令 配置动态参数
  2. 使用pt-config-diff 工具比较配置文件 (检查在运行中的配置和系统配置)
使用set 命令 配置动态参数
  1. set [session | @@session.] system_var_name = expr
  2. set [global | @@global .] system_var_name = expr
  3. set [persist | @@persist .] system_var_name = expr (mysql 8.0 中增加)
检查在运行中的配置和系统配置(mysql 5.x)

pt-config-diff u=root, p=, h = localhost /etc/my.cnf
在这里插入图片描述

举几个mysql 中的关键性能参数

常用的性能参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值