Golang面试专题 - 数据库
收藏

数据库

1.Mysql 事物的隔离级别?

| 读未提交(read-uncommitted)| 是 | 是 | 是 | | 读已提交(read-committed) | 否 | 是 | 是 | | 可重复读(repeatable-read) | 否 | 否 | 是 | | 串行化(serializable) | 否 | 否 | 否 |

相关资料

2.Innodb 和 Myisam 的区别?

Innodb 支持事务,而 Myisam 不支持事务

Innodb 支持行级锁,而 Myisam 支持表级锁

Innodb 支持外键,而 Myisam 不支持

Innodb 不支持全文索引,而 Myisam 支持

Innodb 是索引组织表, Myisam 是堆表

相关资料

3.Mysql 慢响应默认时间?

10s

4.Explain 的含义?

explain 显示了 mysql 如何使用索引来处理 select 语句以及连接表。可以帮助 选择更好的索引和写出更优化的查询语句。

5.Profile 的意义以及使用场景?

Profile 用来分析 SQL 性能的消耗分布情况。当用 explain 无法解决慢 SQL 的时 候,需要用 profile 来对 SQL 进行更细致的分析,找出 SQL 所花的时间大部分消耗在 哪个部分,确认 SQL 的性能瓶颈。

6.Redis 的过期失效机制?

scan扫描 + 给每个 key 存储过期时间戳

7.Redis 持久化方案 aof 的默认 fsync 时间是多长?

1s

8.Redis 持久化方案 rdb 和 aof 的区别?

查看资料

9.Redis 怎么查看延迟数据?(非业务操作)

可以用 redis-cli 工具加–latency 参数可以查看延迟时间

redis-cli --latency -h 127.0.0.1 -p 6379

使用 slowlog 查出引发延迟的慢命令

slowlog get

10.Redis 的集群怎么搭建?

查看资料

11. 简单介绍下什么是缓存击穿, 缓存穿透, 缓存雪崩? 能否介绍些应对办法?

查看资料

12. 关系型数据库 MySQL/PostgreSQL 的索引类型? 其他数据库优化方法?

  1. https://segmentfault.com/a/1190000003072424
  2. https://tech.meituan.com/performance_tunning.html

13. 介绍下数据库分库分表以及读写分离?

分库分表主要解决写的问题, 读写分离主要解决读的问题. 分库分表的策略有很多种: 平均分配, 按权重分配, 按业务分配, 一致性 hash…..

读写分离的原理大致是一台主、多台从。主提供写操作,从提供读操作.

方案可以根据以下几个因素来综合考虑:

1. 数据实时性要求?

2. 查询复杂度是否比较高?

3. 读和写的比例即侧重点是哪一个?

方案有很多, 大家可以自行搜索, 学习总结. 这题源自微博的平台技术专家一条微博: https://m.weibo.cn/status/4265027340366901

回复: