幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

面试中问你MySQL,这一篇就够了

  关注我,带你了解java
  大家好,我是冰冰,前几天分享了MySQL从基础到高级的知识,现在接着分享一下MySQL面试中常见的问题!
  本文目录:
  事务的四大特性和实现原理?
  事务的隔离级别?
  数据库的三大范式?
  索引相关:
  1。索引的优缺点?
  2。什么情况下需要建索引?什么情况下不需要?
  3。索引的数据结构
  4。Hash索引和B树索引的区别?
  5。什么是聚集索引?
  6。什么是覆盖索引?
  7。索引的设计原则?
  8。索引使用有哪些注意事项?
  一、事务的四大特性?
  事务特性ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
  1。原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。
  2。一致性是指一个事务执行之前和执行之后都必须处于一致性状态。比如a与b账户共有1000块,两人之间转账之后无论成功还是失败,它们的账户总和还是1000。
  3。隔离性。跟隔离级别相关,如readcommitted,一个事务只能读到已经提交的修改。
  4。持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
  事务ACID特性的实现思想
  1。原子性:是使用undolog来实现的,如果事务执行过程中出错或者用户执行了rollback,系统通过undolog日志返回事务开始的状态。
  2。持久性:使用redolog来实现,只要redolog日志持久化了,当系统崩溃,即可通过redolog把数据恢复。
  3。隔离性:通过锁以及MVCC,使事务相互隔离开。
  4。一致性:通过回滚、恢复,以及并发情况下的隔离性,从而实现一致性。
  二、事务隔离级别有哪些?
  先了解下几个概念:脏读、不可重复读、幻读。
  脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。
  不可重复读是指在对于数据库中的某行记录,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,另一个事务修改了数据并提交了。
  幻读是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行,就像产生幻觉一样,这就是发生了幻读。
  不可重复读和脏读的区别是,脏读是某一事务读取了另一个事务未提交的脏数据,而不可重复读则是读取了前一事务提交的数据。
  幻读和不可重复读都是读取了另一条已经提交的事务,不同的是不可重复读的重点是修改,幻读的重点在于新增或者删除。
  事务隔离就是为了解决上面提到的脏读、不可重复读、幻读这几个问题。
  MySQL数据库为我们提供的四种隔离级别:
  Serializable(串行化):通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。
  Repeatableread(可重复读):MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行,解决了不可重复读的问题。
  Readcommitted(读已提交):一个事务只能看见已经提交事务所做的改变。可避免脏读的发生。
  Readuncommitted(读未提交):所有事务都可以看到其他未提交事务的执行结果。
  三、数据库的三大范式?
  第一范式1NF:
  确保数据库表字段的原子性。
  比如字段userInfo:河北省10010,依照第一范式必须拆分成userInfo:河北省userTel:10010两个字段。
  第二范式2NF
  首先要满足第一范式,另外包含两部分内容,一是表必须有一个主键;二是非主键列必须完全依赖于主键,而不能只依赖于主键的一部分。
  举个例子。假定选课关系表为studentcourse(studentno,studentname,age,coursename,grade,credit),主键为(studentno,coursename)。其中学分完全依赖于课程名称,姓名年龄完全依赖学号,不符合第二范式,会导致数据冗余(学生选n门课,姓名年龄有n条记录)、插入异常(插入一门新课,因为没有学号,无法保存新课记录)等问题。
  可以拆分成三个表:学生:student(stuentno,studentname,年龄);课程:course(coursename,credit);选课关系:studentcourserelation(studentno,coursename,grade)。
  第三范式3NF
  首先要满足第二范式,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列A依赖于非主键列B,非主键列B依赖于主键的情况。
  假定学生关系表为Student(studentno,studentname,age,academyid,academytelephone),主键为学号,其中学院id依赖于学号,而学院地点和学院电话依赖于学院id,存在传递依赖,不符合第三范式。
  可以把学生关系表分为如下两个表:学生:(studentno,studentname,age,academyid);学院:(academyid,academytelephone)。
  2NF和3NF的区别?
  2NF依据是非主键列是否完全依赖于主键,还是依赖于主键的一部分。
  3NF依据是非主键列是直接依赖于主键,还是直接依赖于非主键。
  四、索引相关
  1。索引的优缺点
  优点:
  加快数据查找的速度
  为用来排序或者是分组的字段添加索引,可以加快分组和排序的速度
  加快表与表之间的连接
  缺点:
  建立索引需要占用物理空间
  会降低表的增删改的效率,因为每次对表记录进行增删改,需要进行动态维护索引,导致增删改时间变长
  2。什么情况下需要建索引?什么情况下不需要?
  什么情况下需要建索引?
  经常用于查询的字段
  经常用于连接的字段建立索引,可以加快连接的速度
  经常需要排序的字段建立索引,因为索引已经排好序,可以加快排序查询速度
  什么情况下不建索引?
  where条件中用不到的字段不适合建立索引
  表记录较少
  需要经常增删改
  参与列计算的列不适合建索引
  区分度不高的字段不适合建立索引,如性别等
  3。索引的数据结构
  索引的数据结构主要有B树和哈希表,对应的索引分别为B树索引和哈希索引。InnoDB引擎的索引类型有B树索引和哈希索引,默认的索引类型为B树索引。
  B树索引
  B树是基于B树和叶子节点顺序访问指针进行实现,它具有B树的平衡性,并且通过顺序访问指针来提高区间查询的性能。
  在B树中,节点中的key从左到右递增排列,如果某个指针的左右相邻key分别是keyi和keyi1,则该指针指向节点的所有key大于等于keyi且小于等于keyi1。
  哈希索引
  哈希索引是基于哈希表实现的,对于每一行数据,存储引擎会对索引列进行哈希计算得到哈希码,并且哈希算法要尽量保证不同的列值计算出的哈希码值是不同的,将哈希码的值作为哈希表的key值,将指向数据行的指针作为哈希表的value值。这样查找一个数据的时间复杂度就是O(1),一般多用于精确查找。
  4。Hash索引和B树索引的区别?
  哈希索引不支持排序,因为哈希表是无序的。
  哈希索引不支持范围查找。
  哈希索引不支持模糊查询及多列索引的最左前缀匹配。
  因为哈希表中会存在哈希冲突,所以哈希索引的性能是不稳定的,而B树索引的性能是相对稳定的,每次查询都是从根节点到叶子节点。
  5。什么是聚集索引?
  InnoDB使用表的主键构造主键索引树,同时叶子节点中存放的即为整张表的记录数据。聚集索引叶子节点的存储是逻辑上连续的,使用双向链表连接,叶子节点按照主键的顺序排序,因此对于主键的排序查找和范围查找速度比较快。
  聚集索引的叶子节点就是整张表的行记录。InnoDB主键使用的是聚簇索引。聚集索引要比非聚集索引查询效率高很多。
  对于InnoDB来说,聚集索引一般是表中的主键索引,如果表中没有显示指定主键,则会选择表中的第一个不允许为NULL的唯一索引。如果没有主键也没有合适的唯一索引,那么InnoDB内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键长度为6个字节,它的值会随着数据的插入自增。
  6。什么是覆盖索引?
  select的数据列只用从索引中就能够取得,不需要回表进行二次查询,也就是说查询列要被所使用的索引覆盖。对于innodb表的二级索引,如果索引能覆盖到查询的列,那么就可以避免对主键索引的二次查询。
  不是所有类型的索引都可以成为覆盖索引。覆盖索引要存储索引列的值,而哈希索引、全文索引不存储索引列的值,所以MySQL使用b树索引做覆盖索引。
  对于使用了覆盖索引的查询,在查询前面使用explain,输出的extra列会显示为usingindex。
  7。索引的设计原则?
  索引列的区分度越高,索引的效果越好。比如使用性别这种区分度很低的列作为索引,效果就会很差。
  尽量使用短索引,对于较长的字符串进行索引时应该指定一个较短的前缀长度,因为较小的索引涉及到的磁盘IO较少,查询速度更快。
  索引不是越多越好,每个索引都需要额外的物理空间,维护也需要花费时间。
  8。索引使用有哪些注意事项?
  可以从三个维度回答这个问题:索引哪些情况会失效,索引不适合哪些场景,索引规则
  索引哪些情况会失效
  1。查询条件包含or,可能导致索引失效
  2。如何字段类型是字符串,where时一定用引号括起来,否则索引失效
  3。like通配符可能导致索引失效。
  4。联合索引,查询时的条件列不是联合索引中的第一个列,索引失效。
  5。在索引列上使用mysql的内置函数,索引失效。
  6。对索引列运算(如,、、、),索引失效。
  7。索引字段上使用(!或者,notin)时,可能会导致索引失效。
  8。索引字段上使用isnull,isnotnull,可能导致索引失效。
  9。左连接查询或者右连接查询查询关联的字段编码格式不一样,可能导致索引失效。
  10。mysql估计使用全表扫描要比使用索引快,则不使用索引。
  索引不适合哪些场景
  1。数据量少的不适合加索引
  2。更新比较频繁的也不适合加索引
  3。区分度低的字段不适合加索引(如性别)
  索引的一些潜规则
  1。覆盖索引
  2。回表
  3。索引数据结构(B树)
  4。最左前缀原则
  5。索引下推
  星辰大海,永不止步
  END

江苏斧头大楼,在当地十分出名,游客评价不一江苏斧头大楼,在当地十分出名,游客评价不一随着时代的发展以及各个城市经济的不断进步,原本在城市建设过程之中追求高楼大厦的方向也是逐渐的发生了改变,而伴随着城市风格的多样化……英国使用卢布结算俄天然气金发飘飘的你也叛变革命了?综合路透社、彭博社消息,英国财政部22日公布的一份文件显示,英国已向俄罗斯天然气工业银行及其子公司授权于5月底前使用卢布支付俄罗斯天然气款项。说实话,英国对俄罗斯的天然气……澳大利亚中国足球很难培养出好球员,中国球员缺乏创造力独立性近日,澳大利亚《ABC网站》报道,足球是一项偏重创造性及独立性的综合运动,在中国现行的教育背景下,中国足球很难培养出好球员,而这也直接导致了中国足球很难成功。埃姆商学院教……滴滴总裁柳青辞职跑路?滴滴面临联合审查已经有一段时间了,但到目前为止还没有正式的结果发布,关于滴滴公司的猜测越来越多,滴滴事件逐渐被蒙上了一层阴影,一时间各种说法不绝于耳。滴滴成长可以说是奇迹……郭艾伦是个幼稚鬼,被叫大侄子是有原因的,但安静的时候判若两人郭艾伦这个幼稚鬼!嘴巴嘟嘟就能减龄,我郭少又回到18岁了!关健还有一个更幼稚的配合他!拜托,郭艾伦你们两个人加起来都有60岁了,真是一对活宝,对,另一个就是有熊猫美誉的韩德君!……春天到了,怎么能少了室外活动,北京免费公园整理天气越来越暖和了,怎么能少得了带小朋友去公园走走,骑骑车,跑跑步,打打球。呼吸新鲜空气,提高身体免疫力。柳荫公园柳荫公园坐落于安定门的外馆斜街上,公园的标志是……灰色卫衣搭配牛仔裤,邢菲温婉可人,被赞最美初恋文桔彤娱乐圈内艺人也是格外的多,他们都是魅力四射的,以其演技,颜值,身材等各类综合指数被粉丝们所熟知,他们以独特的人格魅力而获得粉丝的高度好评,除了演技,颜值以外,他们的……威高海洋馆,带孩子体验一场深海之旅威高海洋馆位于威海市文化西路与世昌大道交汇处,毗邻国际海水浴场。是一座以海洋文化为主题的大型文旅项目,有威高海洋馆、威高水上乐园游玩场所,孩子们比较喜欢,是家长遛娃的好地方。在……孩子会模仿有好有坏,如何教儿童避免不好的模仿模仿是孩子对自身的身体行为的肯定,就好像孩子可以在一个特定的系列动作中停下来,然后反复练习,最后成为自己的能力一样。婴儿在出生后的几个月内就开始模仿,这表明他与身边的人建……2022年才过去三分之一,已有7部烂剧预警,你错付了几部今年的影视市场依旧是相当火热,开年的一部《人世间》直接口碑大爆,该剧不仅是刻画出了家人之间的温情,也是刻画出了浓重的年代感。剧中殷桃、雷佳音、辛柏青等诸多演员都贡献出了高……有水的地方更美盘点4个意大利有趣的宝藏旅行地看多了意大利正经的旅游胜地,今天我们聊一聊4个意大利外形特别、有着自己故事的小众宝藏旅行地潘泰莱里亚岛Pantelleria这是个位于西西里岛西南海岸的椭圆形岛屿,与意大……首次晋级冬季两项赛中赛程方明坚持到底不负使命2月18日,北京冬奥会冬季两项男子15公里集体出发比赛结束,这也是本届冬奥会冬季两项最后一项比赛,中国选手程方明在比赛中获得第30名。虽然在全部30名选手中位居最后,但他的参赛……
纪念辛亥革命,这篇讲话启示深10月9日,习近平总书记在纪念辛亥革命110周年大会上发表重要讲话。建党百年之际重温亚洲觉醒波澜壮阔的一幕,总书记这篇讲话有何重要启示?探求振兴中华的正确道路振兴中……给家里老人换智能机,我选择这样社会越来越智能,老人外出没有智能手机不方便,尤其疫情后去各个场所都需要扫码,不扫码填表很麻烦,作为子女有义务给老人换上智能机,有老智能机卡了坏了也要换。老人都比较节约,给他们买……国产首发空气黑科技,99灭活6重防护,米粉睡觉安全作为小米的粉丝,看过的黑科技好物可以说数不胜数了。但是小米有品很厉害,不管怎么样都可以满足我对黑科技的好奇心。拿出各种我没见过藏有黑科技的新奇好物,现在我想说说我近来在小……泰国开凿克拉运河,新加坡真的害怕吗泰国南端的马来半岛上,有一处非常狭窄的克拉地峡,位于泰国春蓬府与拉廊府之间,最窄的地方只有五十公里,长久以来,有不少国家都希望在这里开通一条东西横向的运河,将南海与安达曼海勾连……成年人的世界,不存在永远的靠山成年人的世界,不存在永远的靠山。你没有体会过,在泥土里沉默,在山林里踟躇,在阳光里追逐,阳光在一片竹林里奔跑。此后,你又有了新的空间,你又为何留恋过这里夜空里的竹林呢?是……入围清华大学特等奖学金候选名单遭受质疑,杨倩六个字霸气回应东京奥运会已经过去两个月之久,在这届奥运上涌现出来的很多新人和新晋奥运冠军还是在持续受到各方面的关注,可见奥运会本身的影响力有多大。我国奥运健儿在东京奥运会上获得了傲人的成绩,……记忆力是天生的?错!6岁前多注重这四方面,记忆力能提升3倍记忆力天生的?No!No!No!记忆力是培养的,而且越早越好。如果在孩子6岁之前,父母就能给他更多这方面的重视,培养好的记忆习惯,就一定会有事半功倍,甚至记忆力提升……嫁给日本人,拒绝刘德华参加婚礼,频传被家暴的林志玲过得怎样2019年,林志玲和日本人黑泽良平结婚,刘德华问林志玲要请帖,谁知林志玲却说:我不希望你出现在我的婚礼上,刘德华尴尬的笑着问,为什么呀?林志玲的回答让刘……生活很累又必须坚持的语句所有的心酸委屈自己扛的句子生活很累又必须坚持的语句(一)心情突然很不好,对未来充满了担忧,也不知道还会不会遇到互相喜欢,彼此合适的人。生活很不容易,本来想当个孩子现实生活也不允许。(二)不管……19投13分,20投14分,感谢NBA新规!杜兰特的历史地位本赛季NBA推出了新规,对不少球星而言NBA新规不是好事,因为新规的推出让他们遭遇了诸多尴尬,由于没有罚球的加成,不少明星打出了尴尬的数据,比如利拉德13投2中得4分,20投5……台积电投70亿美元在日本建半导体工厂世界最大半导体代工企业台积电(TSMC)11月9日表示,与索尼集团合作在熊本县建设日本首座工厂。最初的设备投资额约为70亿美元,索尼向运营工厂的合资企业出资约5亿美元。计划20……100道超级下饭的家常菜,做法简单又美味,每一道都让你多吃2生活中总会有一些家常菜让你吃一次就欲罢不能,那么今天阿慧就给大家分享100道家常菜食谱,让你吃一次就一辈子忘不掉的家常菜做法!保证每一道都会让你多吃2碗米饭!先来看看青椒……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网