赞
踩
来自公众号:Java面试那点事
1. 什么是超键? 什么是主键? 二者有什么关系?
2. 数据库的三范式是什么?
3. char 和 varchar 的区别是什么?
4. delete 和 truncate 有什么区别? 谁效率更好?
5. 存储过程和函数的区别?
6. 视图的操作会对基本表产生影响吗?
7. count( * ) 和 count(列名) 谁的效率更高?
8. 索引是什么?
9. 索引的分类? 索引失效条件?
分类:
索引失效条件:
10. 索引优化方式?
创建:
避免创建:
11. 怎么验证 mysql 的索引是否满足需求?
用数据库再带的命令 explain 查看语句中索引是否启动,
12. 索引的底层结构是什么? 说说各种的特点和缺点?
B 树的定义:
B 树和 B+树区别:
13. 什么是事务?
14. 事务的 ACID 特性?
15. 事务并发会造成的问题?
16. 事务的隔离级别?
17. 说一下乐观锁和悲观锁? 说一下 mysql 的行锁和表锁?
行锁又分为读锁和写锁:
18. 事务的隔离级别和加锁的关系?
19. 两种常见的数据库引擎? 分别具有什么特点?
InnoDB 和 MyISAM 是数据库最常见的两种存储引擎。
20. 一张自增表里面总共有 7 条数据, 删除了最后 2 条数据, 重启 MySQL 数据库, 又插入了一条数据, 此时 id 是几?
21. 什么是主从复制? 什么是读写分离?
在实际的生产环境中, 对数据库的读和写都在同一个数据库服务器中, 是不能满足实际需求
的。 无论是在安全性、 高可用性还是高并发等各个方面都是完全不能满足实际需求的。 因此,
通过主从复制的方式来同步数据, 再通过读写分离来提升数据库的并发负载能力。
主从复制的过程:
22. 数据库从哪几方面进行调优?
23. 索引优化方向?
一般来说, 应该在这些列上创建索引:
对于有些列不应该创建索引:
索引失效:
在以下这些情况种, 执行引擎将放弃使用索引而进行全表扫描
24. mysql 问题排查都有哪些手段? 怎么验证 mysql 的索引是否满足需求?
SQL 调优最常见的方式是, 由自带的慢查询日志或者开源的慢查询系统定位到具体的出问
题的 SQL, 然后使用 explain、 profile 等工具来逐步调优, 最后经过测试达到效果后上线。
开启慢查询
分析慢查询 explain
在该语句之前加上 explain 再次执行, explain 会在查询上设置一个标志, 当执行查询时,
这个标志会使其返回关于在执行计划中每一步的信息, 而不是执行该语句。
explain 通常用于查看索引是否生效, explain 执行语句返回的重要字段:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。