专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

面试中问你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

有的人说自己经络不通,经络不通有什么办法解决?很高兴和大家探讨中国古老的治病方法,讨论经络必须了解经络,人体身上共有十四条经络,十二正经脉,分别是6条在手上,还有6条在腿上。另外两经为任督二脉,在躯干中央,具体为任脉,后为督脉第一批70后已经过50岁了,有多少存款才算有钱人,你达标了吗?第一批70后已经过50岁了,有多少存款才算有钱人,你达标了吗?70后,一个不得不说的话题。现在最早的70后已经50多岁了,最晚的70后也已经进入40多岁,介于中年和老年之间,是一个尾盘买入股票有什么好处?懂得尾盘买入股票的股民,大多都赚到了钱。尾盘买入,是一种控制风险的绝佳方式。买完即收盘,有效回避了当日波动,降低T1制度的潜在劣势。稳健而又聪明的资金,往往喜欢在尾盘买入股票。当然月薪4千你为什么要留在深圳?如果从最初的想法看,多是因为毕业(成年)后有个梦想,年轻时有梦就去追!走出去,走出大山校园或可能终老一生的中小城市,摆脱命运的安排,到外面的世界看一看,哪怕去看看大海看看光怪陆离的产后第一年真的是最难熬的吗?熬过去之后呢?你好,很高兴为你答疑支招,作为宝妈,也作为儿童营养师的我,宝贝闺女快2岁半了,我来说说我家豌豆出生后到现在的这两年半时间里我的喂养感受。产后第一年真的是最难熬的吗?不是真的不是很多许昕退役后适合做教练吗?他的单打最好成绩是什么?感谢邀请。第一,许昕很适合做教练第二,他的单打最好成绩是2013世界杯冠军第三,能够成为好教练,和单打成绩有关系,但不是充分必要关系。01hr许昕退役后很适合做教练恰好今天刚看过许有没有湖州的旅游攻略?湖州旅游资源虽然在全国不算太出名,但是每处景点却都很精致,小而美,下面我来分享一下如果你喜欢淳朴的古镇,那么新市古镇,南浔古镇,练市古镇等都是非常值得一去。其中又以南浔古镇规模最大哈尔滨的宾县有哪些景区?宾县位于松花江南岸,地处张广才岭和松江平原交汇处,是哈市的卫星城,1880年设宾州厅,自古素有先有宾州府后有哈尔滨之美称,是东三省的交通要地。宾县自然概貌是五山半水四分半田,共辖5山东去内蒙呼伦贝尔大草原,怎么规划,大草原攻略是什么,自驾?1)山东济南出发至内蒙呼伦贝尔大草原,全程约2314公里,时间大约25个小时,起点走长深高速,集阿高速,2)呼伦贝尔大草原,是世界四大草原之一,世界最美的草原,位于内蒙自治区东北部广州有什么好吃的?谢邀广州有什么东西好吃的吗?广州好吃的到处都有,前天广交会开幕,今天各大电台播出了,好吃,好玩,地方!1,河南沿江路美食一条街,2,广州夜游船上美食多多,3,上下九路美食多多,4,儿童过敏性鼻炎,经常流清稀鼻水,怎么办?流清鼻涕,一般就是阳虚,原因有二,第一个就是消化阳气太多,太晚睡觉损伤肾阳,饮冷积食损伤脾阳,物质太丰富,比如玩具太多,游戏太多,电视节目太多,导致儿童选择困难,心神难以汇聚,最后
庆余年言冰云一剑刺穿范闲胸膛,故技重施,障眼法骗过了谢必安在电视剧庆余年里面,范闲既然穿越时空而来,就不会轻而易举地猝死,这样的结局未免是太潦草了,范闲如此鸡贼,就这样被二皇子李承泽暗害败北,显然难以服众。在北齐,范闲和沈重狭路相逢勇者胜4天破6亿,44岁的张译,越老越狂了一一个男人越是被人嫌弃,就越要默默无闻地做出点成绩给别人看。而张译,就有点这方面的意思。1992年,14岁的张译正在读初二,一次他被老师点名在班里朗诵课文,结果震惊了班里的所有人,李易峰被封杀后,刘诗诗也出事了?前段时间,男顶流李易峰pc被抓的事情引起了轩然大波,后劲实在太猛,一时之间娱乐圈里有些风吹草动就会掀起新一轮猜测。先是王嘉尔站姐脱粉频频上热搜,后是各家粉丝发声。紧接着张翰霸榜好几靖难兵败,军师提出一计,朱棣大惊失色,事后却夸大师神策历史上有哪些一战定乾坤的战争历史上发生的战争数不胜数,其中一战定乾坤的例子也不少,今天就来聊聊明朝靖难之役中的突袭金陵之战。一惨遭失败的谋反之路建文元年(公元1399年)七月,朱棣小叮当谢昀杉,6岁出道当童星,32岁身材油腻相亲被丑拒10月1日,国内演员小叮当谢昀杉,通过社交账号上传了一段视频,视频中的他手持国旗站在西湖河畔,祝愿祖国母亲生日快乐,此视频曝光后很快引起了网友热议,不少人也纷纷留言评论,调侃谢昀杉甜歌皇后杨钰莹事业巅峰为何隐退?如今年过50为何至今单身?杨钰莹是全中国男人不惜代价也愿意追求的女人,这是黄安对女神杨钰莹的评价。歌手杨钰莹先是1992年通过歌曲我不想说火遍了大江南北,后面又与红极一时的毛宁合作,人气更是家喻户晓。被大家李连杰的4个女儿有多大差距?一样的爸爸不一样的命运李连杰曾说,我爱她,我可以为她死,放弃所有的名利和前程。这个让他魂牵梦萦的女人是利智,而他当时是黄秋燕的丈夫。李连杰和这两个女儿分别生下两个女儿,但外界只知利智所生的两个女儿,她们曹德旺或预言成真?3大信号出现,明年起,房价或再次失守从2022年开始,国内无论是新房,还是二手房都已经开始卖不动了。今年开发商可以用惨淡经营来形容。数据显示,2022年17月份,全国商品房销售面积为7。8亿平方米,同比下降23。1商穷人孩子早当家的真相在目前激烈竞争的社会环境下,一个普通家庭出身的孩子想出人头地,人生早期肯定是充满各种坎坷。说句扎心的话,其实很大部分和父母的认知思维里工具太少,他们更容易一根筋的想问题和解决问题。想要孩子长大不变坏,就应该去看看这三个地方现在许多家长都喜欢带着孩子出门见世面,增长见识。有条件的家长都选择了国外,让孩子感受异国的风情或者是大型游乐场,让孩子放松一下有人说,亲子旅行重在陪伴,去哪里没那么重要。其实不是这明明歪瓜裂枣,却能貌美如花,这8位女明星整得太惊艳文娱情故纵编辑娱情故纵前言不知道大家是否发现,很多女星虽然表面上看起来貌若天仙,但却是看起来总一个样子。锥子脸高鼻梁厚嘴唇大眼睛等等,可以说已经成为了混迹娱乐圈的标配。甚至还因为很
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网