todo【面经】牛客网数据库相关面经题

1. mybatisplus和mysql的区别

【todo头一个是啥。。】

2. Innodb索引,说原理,如何创建索引

【todo放link】见其他文章

3. ACID特性

【todo放link】见其他文章

4. sql注入原理,防止sql注入

【todo】

5. 删除表中所有的数据保留表结构

使用truncate操作【todo其他删除操作 drop、truncate、 delete】

6. mysql联合索引能否命中

【todo】

7. 索引是什么,索引底层

  • 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
    在MySQL中,存储引擎现在索引中查找对应的值,然后根据匹配的索引记录找到对应的数据行,最后将数据结果集返回给客户端。
  • 优点:
  1. 在查询过程中提高系统的性能
  2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  3. 在使用分组和排序子句进行数据检索时,可以减少查询中分组和排序的时间。
  • 缺点:
  1. 创建所有和维护索引要耗费时间,而且随着数据量的增大而增大。
  2. 索引需要占用物理空间,如果要建立聚类索引,所需要的空间会更大。
  3. 在对表中的数据进行增删改时需要耗费较多的时间,因为索引也要动态地维护。
  • 分类:
  1. 单例索引(主键索引、唯一索引、普通索引):
    一个索引只包含一个列,一个表可以有多个单例索引。
  2. 组合索引:
    一个组合索引包含两个或两个以上的列。

2.1 单例索引

普通索引

最常见的索引,没有任何限制

唯一索引

与普通索引类似,但是要求所有的列的值都是唯一的,允许有空值

主键索引

要求所有的列的值是唯一的,且不允许有空值

2.2 组合索引

如果建立了组合索引,那么它实际建立了多层单例索引。
在使用查询的时候,遵循最左匹配原则。

  • 如果不按索引最左列开始查询则不能使用组合索引。
  • 如果查询的某个列有范围查询,则其右边的所有列都无法使用该组合索引。
  • 不能跳过某个字段进行查询,这样利用不到组合索引。

【todo, b+树】

8. 事务是什么,事务的特性,具体的事务例子

【todo】

9. mysql死锁

【todo】

10. 慢查询

【todo】

11. mysql连接

【todo】

12. 数据库中的存储过程

【todo】

13. 分布式事务

【todo】

14. 为什么线上常用可重复度隔离级别

【todo】

15. 聚类索引

【todo】

16. 主键和外键

  1. 主键用来唯一标识一条记录,不能有重复,不允许为空,而外键可以重复,可以为空。
  2. 如果公共关系字在一个关系中是主键,那么这个公共关键字被称为另一个关系的外键。
  3. 主键用来保证实例完整性,外键用来建立与其他表的联系,需要保证参照完整性。
  4. 主键在一个关系里只能有一个,外键可以有多个。

17. 查询语句中:先分组还是先排序,为什么?

【todo】

18. order by 和group by 是什么,区别是什么,

order by 和group by 同时使用的时候是什么顺序,为什么。
【todo】

19. 范式

  • 符合高一级范式的设计必定符合低一级范式。
  • 规范化:一个低一级的关系模式通过模式分解可以转化为若干个高一级范式的关系模式的集合,这个过程叫做规范化。
  • 候选键:若关系中的某一属性组的值能唯一标识一个元组,而其子集不能,则称该属性组为候选键。若一个关系中有多个候选键,则选定其中一个为主键。
  1. 第一范式1NF:
    属于第一范式关系的所有属性都不可再分,即数据项不可分。
  2. 第二范式2NF:
    若某关系R属于第一范式,且每一个非主属性完全依赖于任何一个候选键,则关系R属于第二范式
  3. 第三范式3NF
    在第二范式基础上,任何非主属性不依赖于其他非主属性。
  4. 巴斯-科德范式BCNF
    在第三范式基础上,任何非主属性不能对主键子集依赖。

20. 左连接、右连接和内连接的区别

【todo】

21. mysql的范围查找

【todo】

22. innodb和myisam

  1. InnoDB支持事务,MyISAM不支持。
  2. InnoDB支持外键,而MyISAM不支持。
  3. InnoDB是聚类索引,使用B+树作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+树组织的一个索引结构),必须有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。
    MyISAM是非聚类索引,也是使用B+树作为索引结构,索引和数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
  4. InnoDB不保存表的具体行数,执行count(*)时需要进行全表扫描,而MyISAM用一个变量保存了整个表的行数
    因为InnoDB的事务特性,在同一时刻表中的行数对于不同的事务而言是不一样的,因此count(*)统计会计算对于当前事务而言可以统计到的行数。
  5. InnoDB支持表、行(默认)级锁,而MyISAM支持表级锁。
    InnoDB的行级锁是实现在索引上的,而不是锁在物理行记录上。
  6. InnoDB表必须有唯一索引(如主键),用户没有指定的话,会找/生成一个隐藏列Row_id来充当默认主键,而MyISAM可以没有。

23. 数据库优化

【todo,后悔不好好学习】

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容