美文网首页
mysql相关的面试题 持续更新

mysql相关的面试题 持续更新

作者: 麟之趾a | 来源:发表于2020-03-02 22:06 被阅读0次

在生产环境中,开发人员开用户流程

  • 平常企业
  1. 先确认开发人员的流程是否走通
  2. 如走通,确认开发人员做哪些操作
  3. 确认从哪里连过来
  4. 对哪个库进行操作
  • 银行/金融 企业
  1. 严格意义上来说,root权限谁都不给
  2. 谁私下要,就全公司通报

union 和 union all的区别

  • union all: 不做去重复(一般使用这个)
  • union: 去重复操作,去重复的话会涉及到排序和计算,查询效率就降下来了。所以生产一般不用

我们在sqlyoung写SQL语句,group by 没有问题,但在命令行中就出现问题,能解释一下原因吗?

  • 这是5.7中sql_mode 参数默认开启的 select @@sql_mode
  • 如果带group by 子句中select 后面的列(非主键列),要么是group by 后面的列,要么是被函数包裹(select 后面的列是由group by 之后才执行的)

聚集索引和辅助索引的区别

  • 聚集索引的叶子节点就是数据行,而辅助索引的叶子节点存放有序值+聚集索引列值
  • 在有需要的时候, 辅助索引可以成为任何一个列,只是名字不同
  • 聚集索引一般有一个,一般为主键
  • mysql的表数据是聚集索引组织表

你平常怎么做sql优化的?

你用过什么优化工具?
你对索引这块怎么优化的?
我们公司业务慢,请你从数据库角度分析原因?
mysql 出现性能问题,我遇到以下两种情况?
1 .数据库,突然变慢,夯住了,资源耗尽
处理过程:

  • show processlist; 获取数据库夯住语句
  • explain,分析SQL的执行计划,有没有走索引,索引的类型情况
  • 建立索引,改写sql语句
    2 .数据库每天都有一段时间变的慢
  • 记录慢日志slowlog,分析slowlog
  • explian分析SQL的执行计划,看有没有走索引,索引类型情况
  • 建索引,改语句

同一个语句突然变慢

统计信息过旧,导致索引信息失效。(索引列更新太过频繁,导致索引没有更新过来)???

SBR和RBR 什么区别?怎么选择?

SBR: 可读性强,update t1 set name='zs' where id>5,直接记录此语句,只记录了一行,对于操作日志量少,但是可能会出现记录不准确,比如 insert into t1 values(c1,'zs',now()),恢复时,now()函数会发生变化
RBR: update t1 set name='zs' where id>5,有几行变更了,就记录了几行。可读性弱,对于操作范围日志量大,不会出现记录错误,高可用环境的特性依赖于RBR
我们公司对数据严谨性要求高,也用到了新架构,选择了RBR

相关文章

网友评论

      本文标题:mysql相关的面试题 持续更新

      本文链接:https://www.haomeiwen.com/subject/lizikhtx.html