概述

  1. 关系型和非关系型数据库的区别你了解多少?
  2. 什么是非关系型数据库
  3. MySQL中CHAR和VARCHAR的区别有哪些?
  4. varchar(10) 和 varchar(20) 的区别?
  5. 说一下MySQL是如何执行一条SQL的?具体步骤有哪些?
  6. 你了解MySQL的内部构造吗?一般可以分为哪两个部分?
  7. 一条SQL更新语句是如何执行的?
  8. 说一说Drop、Delete与Truncate的共同点和区别
  9. SQL中的NOW()和CURRENT_DATE()两个函数有什么区别?
  10. SQL 与 MySQL 有什么区别?
  11. UNION 与 UNION ALL 的区别
  12. 数据库中的主键、超键、候选键、外键是什么?
  13. SQL语法中内连接、自连接、外连接(左、右、全)、交叉连接的区别分别是什么?
  14. 数据库union join的区别
  15. 数据库的三大范式是什么?
  16. 为什么要分表分库?分表分库有什么问题?
  17. 谈谈你对数据库读写分离的理解?
  18. 谈谈你对数据库读写分离的理解?如何实现?
  19. 主从复制涉及了哪些线程?
  20. 主从同步的延迟原因及解决办法?
  21. MySQL优化了解吗?说一下从哪些方面可以做到性能优化?
  22. 查询性能的优化方法?
  23. MySQL 问题排查都有哪些手段?
  24. MySQL常见的存储引擎InnoDB、MyISAM的区别?适用场景分别是?
  25. 你知道哪些数据库结构优化的手段?
  26. 数据库高并发是我们经常会遇到的,你有什么好的解决方案吗?
  27. 一道场景题:假如你所在的公司选择MySQL数据库作数据存储,一天五万条以上的增量,预计运维三年,你有哪些优化手段?
  28. 数据库连接池的作⽤

    索引

  29. 为什么使用索引?

  30. 索引如何提高查询速度的?
  31. 谈谈你对索引的理解
  32. 添加索引的原则
  33. 什么时候需要建立数据库索引呢?
  34. 索引底层使用的什么数据结构?MySQL索引主要使用的两种数据结构是什么?
  35. 为什么说B+tree比B 树更适合实际应用中操作系统的文件索引和数据库索引?
  36. 谈谈你对 B+ 树的理解?
  37. 为什么MySQL索引要使用B+树,而不是B树或者红黑树或哈希表?
  38. 既然索引有那么多优点,为什么不对表总的每一列创建一个索引呢?
  39. 文件索引和数据库索引为什么使用B+树?
  40. 增加B+树的路数可以降低树的高度,那么无限增加树的路数是不是可以有最优的查找效率?
  41. Mysql有四种索引类型,分别是什么?
  42. 索引的分类有哪些?
  43. 谈谈你对聚簇索引的理解?
  44. 什么是非聚合索引?
  45. 聚集索引与非聚集索引的区别是什么?
  46. 覆盖索引是什么?
  47. MyISAM和InnoDB实现B树索引方式的区别是什么?
  48. 索引的作用?
  49. 创建索引是要注意什么?使用索引注意什么?
  50. 谈谈你对哈希索引的理解?
  51. 谈谈你对最左前缀原则的理解?
  52. 怎么知道创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?
  53. 什么情况下索引会失效?即查询不走索引?
  54. Innodb为什么要用自增id作为主键?

    事务

  55. 事务四大特性(ACID)是什么?

  56. 数据库并发事务会带来哪些问题?
  57. 不可重复读和幻读区别是什么?可以举个例子吗?
  58. 数据库隔离级别
  59. 有哪些事务状态?
  60. 谈谈你对MVCC 的了解
  61. MySQL中为什么要有事务回滚机制
  62. 听说过视图吗?那游标呢?
  63. 视图的作用是什么?可以更改吗?
  64. 关系型数据库的四大特性在得不到保障的情况下会怎样?
  65. 数据库如何保证一致性?
  66. 数据库如何保证原子性?
  67. 数据库如何保证持久性?
  68. MySQL的redo log,undo log,bin log都是干什么的

  69. 说一下数据库表锁和行锁吧

  70. 什么是死锁?如何解决死锁?
  71. 什么是乐观锁和悲观锁?如何实现?
  72. 数据库锁的种类,加锁的⽅式