游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

MYSQL那点破事!索引SQL调优事务B树分表。

  大家好,我是Tom哥
  为了便于大家查找问题,了解全貌,整理个目录,我们可以快速全局了解关于mysql数据库,面试官一般喜欢问哪些问题
  接下来,我们逐条来看看每个问题及答案
  MyISAM和InnoDB的区别?
  答案:InnoDB支持事务、外键、聚集索引,通过MVCC来支持高并发,索引和数据存储在一起。InnoDB不保存表的具体行数,执行selectcount()fromtable时需要全表扫描。而MyISAM用一个变量保存了整个表的行数。
  InnoDB最小的锁粒度是行锁,MyISAM最小的锁粒度是表锁,并发能力低。MySQL将默认存储引擎是InnoDB
  mysql锁有哪些类型?
  答案:mysql锁分为共享锁(Slock)、排他锁(Xlock),也叫做读锁和写锁。根据粒度,可以分为表锁、页锁、行锁。
  什么是间隙锁?
  答案:间隙锁是可重复读级别下才会有的锁,mysql会帮我们生成了若干左开右闭的区间,结合MVCC和间隙锁可以解决幻读问题。
  如何避免死锁?
  答案:死锁的四个必要条件:1、互斥2、请求与保持3、环路等待4、不可剥夺。合理的设计索引,区分度高的列放到组合索引前面,使业务SQL尽可能通过索引定位更少的行,减少锁竞争。调整业务逻辑SQL执行顺序,避免updatedelete长时间持有锁的SQL在事务前面。避免大事务,将大事务拆成多个小事务以固定的顺序访问表和行。比如两个更新数据的事务,事务A更新数据的顺序为1,2;事务B更新数据的顺序为2,1。这样更可能会造成死锁。在并发比较高的系统中,不要显式加锁,特别是是在事务里显式加锁。如selectforupdate语句,如果是在事务里(运行了starttransaction或设置了autocommit等于0),那么就会锁定所查找到的记录。尽量用主键索引去查找记录优化SQL和表设计,减少同时占用太多资源的情况。比如说,避免多个表join,将复杂SQL分解为多个简单的SQL。
  数据库的隔离级别?
  答案:读未提交、读已提交、可重复读(mysql的默认级别,每次读取结果都一样,但是有可能产生幻读)、串行化。
  Mysql有哪些类型的索引?
  答案:普通索引:一个索引只包含一个列,一个表可以有多个单列索引。唯一索引:索引列的值必须唯一,但允许有空值复合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并聚簇索引:也称为主键索引,是一种数据存储方式。BTree结构,非叶子节点包含健值和指针,叶子节点包含索引列和行数据。一张表只能有一个聚簇索引。非聚簇索引:不是聚簇索引,就是非聚簇索引。叶子节点只是存索引列和主键id。如果sql还要返回除了索引列的其他字段信息,需要回表,第一次索引一般是顺序IO,回表的操作属于随机IO。回表的次数越多,性能越差。此时我们推荐覆盖索引
  什么是覆盖索引和回表?
  答案:
  1、覆盖索引,指的是在一次查询中,一个索引包含所有需要查询的字段的值,可能是返回值或where条件selectbuyeridfromorderwheremoney100
  假如我们创建了一个(money,buyerid)的联合索引,索引的叶子节点包含了buyerid的信息,则不会再回表查询。
  2、回表,指查询时一些字段值拿不到,需要到主键索引B树再查一次。
  Mysql的最左前缀原则?
  答案:即最左优先,在检索数据时从联合索引的最左边开始匹配,直到遇到范围查询(如:、、between、like等)
  例子:wherea1andb2andc3andd4,如果建立(a,b,c,d)组合索引,d是用不到索引的;如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。
  线上SQL的调优经验?
  答案:1、slowquerylog日志中收集到的慢SQL,结合explain分析是否命中索引。2、减少索引扫描行数,有针对性的优化慢SQL。3、建立联合索引,由于联合索引的每个叶子节点包含检索字段的信息,按最左前缀原则匹配后,再按其它条件过滤,减少回表的数据量。4、还可以使用虚拟列和联合索引来提升复杂查询的执行效率。
  官方为什么建议采用自增id作为主键?
  答案:自增id是连续的,插入过程也是顺序的,总是插入在最后,减少了页分裂,有效减少数据的移动。所以尽量不要使用字符串(如:UUID)作为主键。
  索引为什么采用B树,而不用B树,红黑树?
  答案:提升查询速度,首先要减少磁盘IO次数,也就是要降低树的高度。平衡二叉树、红黑树,都属于二叉树。时间复杂度为O(n),当表的数据量上千万时,树的深度很深,mysql读取时消耗大量IO。另外,InnoDB引擎采用页为单位读取,每个节点一页,但是二叉树每个节点储存一个关键词,导致空间浪费。B树,非叶子节点存储数据,占用较多空间,导致每个节点的指针少很多,无形增加了树的深度。B树数据都存储在叶子节点,非叶子节点只存储健值指针,索引树更加扁平,三层深度可以支持千万级表存储。同时叶子节点之间通过链表关联,范围查找更快。更多内容,参考mysql一棵B树能存多少条数据?
  事务的特性有哪些?
  答案:ACID。原子性。一个事务中的操作要么全部成功,要么全部失败。持久性。永久保存在数据库中。一致性。总是从一个一致性的状态转换到另一个一致性的状态隔离性。一个事务的修改在提交前,其他事务是感知不到的
  如何实现分布式事务?
  答案:1、流水任务,最终一致性,前提是接口要支持幂等性2、事务消息3、二阶段提交4、三阶段提交5、TCC6、Seata框架7、更多内容,参考如何解决分布式事务
  日常工作中,MySQL如何做优化?
  答案:1、分页优化。比如电梯直达,limit100000,10先查找起始的主键id,再通过id{value}往后取10条2、尽量使用覆盖索引,索引的叶节点中已经包含要查询的字段,减少回表查询3、SQL优化(索引优化、小表驱动大表、虚拟列、适当增加冗余字段减少连表查询、联合索引、排序优化、慢日志Explain分析执行计划)。4、设计优化(避免使用NULL、用简单数据类型如int、减少text类型、分库分表)。5、硬件优化(使用SSD减少IO时间、足够大的网络带宽、尽量大的内存)
  mysql主从同步具体过程?
  答案:master主库,有数据更新,将此次更新的事件类型写入到主库的binlog文件中主库会创建logdump线程通知slave有数据更新slave,向master节点的logdump线程请求一份指定binlog文件位置的副本,并将请求回来的binlog存到本地的Relaylog中继日志中slave再开启一个SQL线程读取Relaylog事件,并在本地执行redo操作。将发生在主库的事件在本地重新执行一遍,从而保证主从数据同步
  什么是主从延迟?
  答案:指一个写入SQL操作在主库执行完后,将数据完整同步到从库会有一个时间差,称之为主从延迟。计算公式:主库生成一条写入SQL的binlog,里面会有一个时间字段,记录写入的时间戳t1binlog同步到从库后,一旦开始执行,取当前时间t2t2t1,就是延迟时间
  注意:不同服务器要保持时钟一致
  主从延迟排查方法?
  答案:通过showslavestatus命令输出的SecondsBehindMaster参数的值来判断
  为零:表示主从复制良好正值:表示主从已经出现延时,数字越大,表示从库延迟越严重
  主从延迟要怎么解决?
  答案:看业务的接受程度。如果不能接受延迟,那么建议强制走主库查询可以考虑引入缓存,更新主库后同步写入缓存,保证缓存的及时性提升从库的机器配置,提高从库binlog的同步效率缩短主、从库的网络距离,减少binlog的网络传输时间一主多从,每个从库都启一个线程从主库同步binlog,导致主库压力过大,可以采用canal增量订阅消费组件,缓解主库压力。因为数据库必须要等到事务完成之后才会写入binlog,所以减少大事务的执行,尽量控制数量,分批执行。5。6版本之前,从库是单线程复制,当遇到执行慢的sql时,就会阻塞后面的同步。5。7版本后支持多线程复制,可以在从服务上设置slaveparallelworkers为一个大于0的数,然后把slaveparalleltype参数设置为LOGICALCLOCK为从库增加浮动IP,并通过脚本检测从库的延迟,延迟大于指定阈值时,将浮动IP切换至Master库,追平后再切换回从库。
  如果数据量太大怎么办?
  答案:mysql表的数据量一般控制在千万级别,如果再大的话,就要考虑分库分表。除了分表外,列举了面对海量数据业务的一些常见优化手段缓存加速读写分离垂直拆分分库分表冷热数据分离ES助力复杂搜索NoSQLNewSQL更多内容,参考海量数据业务有哪些优化手段?
  分表后ID如何保证全局唯一呢?
  答案:分库分表后,多张表共用一套全局id,原来单表主键自增方式满足不了要求。我们需要重新设计一套id生成器。特点:全局唯一、高性能、高可用、方便接入。UUID数据库自增ID数据库的号段模式,每个业务定义起始值、步长,一次拉取多个id号码基于Redis,通过incr命令实现ID的原子性自增。雪花算法(Snowflake)市面的一些开源框架,如:百度(uidgenerator),美团(Leaf),滴滴(Tinyid)等
  分表后可能遇到的哪些问题?
  答案:分表后,与单表的最大区别是有分表键shardingkey,用来路由具体的物理表,以电商为例,有买家和卖家两个维度,以buyerid路由,无法满足卖家的需求,反之同样道理。如何解决?分买家库和卖家库,将买家库做为写库,保存完整的数据关系。同时将数据异构同步一份到卖家库,卖家库可以只存储sellerid,orderid,buyerid等几个简单关系字段即可,以sellerid作为分表键多线程扫描,分段查找,然后再聚合结果另外也可以存到ES中,支持多维度复杂搜索
  如果您觉得文章对您有帮助,可以点赞评论转发支持一下谢谢!
  原文链接:https:mp。weixin。qq。coms?bizMzg2NzYyNjQzNgmid2247486281idx1sn2c0fc614dd94c93aa1172413fb340c6d

美国学生竟然没寒暑假作业?1、美国中小学生没有寒暑假作业,美国中学学校通常有四个长假期,感恩节,寒假,春假和暑假,此外,还有一些国家的公共假日。2、感恩节,11月第四个星期四是感恩节,放假五到七天……广东阳蓄电站上水库下闸蓄水作者:凌丛颖向远航摄影:凌丛颖7月31日,中国水电八局承建的广东阳江抽水蓄能电站上水库正式下闸蓄水。阳江抽水蓄能电站位于广东省阳春市与电白县交界处的八甲山区,是目前……一对一姜汉娜多少分钟出现和王大陆爆出绯闻姜汉娜日前因和中国演员王大陆两个人爆出绯闻而得到外界的关注,说起来她身为韩国演员,拍摄过的知名影视作品还真是不少呢,或许也就是如此导致大家对姜汉娜的其他类型作品也同样关注吧,比……更适合大部分Macbook用户的拓展坞ORICO八合一雷电3大家都知道,MacBook一般在一侧是由两个雷电接口的,但是市面上大部分单接口有雷电3水平的拓展坞价格都过于昂贵或者需要独立的供电,大部分MacBook用户其实是不需要这类型的……经典动态图gif剧情分析肉肉诱惑大胸长腿从哪里来经典动态图是包含了很多类型,是说了搞笑,喜剧,还有什么悲伤,恶搞,人物的表情,举动行为等,这些权势经典动态图的素材,只是有时候是不得不佩服这些人的想象力,电影中其实这些人物没有……王李丹妮全淋浴照片比基尼照最能够让人流鼻血王李丹妮的身材几乎是让人好奇,到底是怎么发育才能够到这样的地步,确实是招惹了很多人去喜欢,也让太多人理解背后中究竟是掺杂了什么利益,是为了在圈子中更好的生存,或者是为了在圈子中……王传福缺乏将才,比亚迪人才基石不稳内斗严重?引言:一山不容二虎,同一体系里久而久之内耗、内卷会加重。王传福的分权而治,既是顺应业务需求,更是深刻洞察人心的无奈之举。从夏治冰到侯雁,从舒酉星到赵长江,从赵长江再到路天……范冰冰梁家辉苹果很污强迫戏份是本人亲自拍摄出来的吗说起来范冰冰与梁家辉在一起可是合作过好几部电影作品呢,不过最让大家印象深刻的还是很污的《苹果》啦,据说范冰冰梁家辉苹果很污,这部让范冰冰获奖的电影涉及了不少大尺度戏份,她身为女……安妮海瑟薇粉色r头演过几部大尺度出镜的电影安妮海瑟薇作为公认的貌美女明星,在影视作品中饰演过公主的她同样也是很多人心目中最印象深刻的公主之一,只是后面她为了寻求转型突破,拍了不少的色情电影,为此还流传出了安妮海瑟薇粉色……香港杨贵妃黄蓉版想要了解历史的请绕行很多知名的影视剧都有很多翻拍的版本。但大都是在有一定内容基础上有些许的变动。最主要是主演的不同所以诠释出来的故事内容有无精彩之分。但也有一些无厘头的剧情。这些都是在原著的基础上……陈静三级片有哪些拍片让陈静换上抑郁陈静三级片有哪些,1。《喜爱夜蒲》,陈静因为拍这部电影,和剧中的王宗尧因戏生情,成为一对恋人。只可惜这段感情并没有维持太久,在两个人在一起的当年,两个人就分手了。《喜爱夜蒲》是……2013款天籁之后再无天籁,曾经的王者为何如此落魄被拉下神坛目前国产天籁自2004年上市,共经历了四次改款,自从2004年日产天籁与东风汽车正式合资生产的第一台国产天籁正式下线上市,也就是此时开始东风日产天籁和广州本田雅阁正式拉开正面竞……
外观过于呆萌,配备液晶仪表悬浮大屏现代Casper或推出多款日前,外媒曝光了一组现代CASPER的新车官图,据悉,该车定位微型SUV,将推出燃油版以及纯电版等多款车型,纯电版有望于2023年亮相。新车采用现代家族分体式前大灯组,搭……AppStore限免觅时入侵者TheLightStory等,在今天限免的iOS限免应用中,波老师精选了以下2款限免应用,3款限免游戏。复制logo上方名字即可前往AppStore下载。如遇恢复原价,则表示限免已结束,请谨慎下载。具……幽灵机器狗巡护美军基地,逆天技能毫不逊色于波士顿SpotMi从BigDog到SpotMini,波士顿动力成为四足机器人领域的佼佼者。但实际上,美国还有一家机器人公司,虽然名声不如波士顿动力,但绝对堪称实力担当,它研发的机器狗最近还被纳入……Python的dict实现原理和Java的HashMap区别进程的概念进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。……雷克沙UHSSD存储卡开箱测速评测在京东买了个支持UHS(第二代超高速)接口的SD存储卡,雷克沙品牌(已被深圳江波龙收购),128GB才329元,性价比真真极高!这卡读取可达250MBs,写入可达90MBs。因……专访丨美版饿了么Gesoo叫板UberEats,华人外卖应该Gesoo是北美的华人即时配送平台,为用户提供外卖、超市、生鲜和同城包裹配送,于2014年初创立于美国洛杉矶。创始团队发现由于美国地广人稀,而中餐业态集中分布在市内,普遍住在郊……真正的无人驾驶还有多远?本文来自微信公众号笔记侠(ID:Notesman),作者:吴甘沙,责任编辑:智勇,值班编辑:金木研。内容来源:湛庐《AI3。0》全智能场景新书发布会。分享嘉宾:吴甘沙,驭……中公教育成立职教事业部12月6日,中公教育(002607。SZ)宣布内部已完成多个项目资源整合,新成立职教事业部,加速业务战略转型。职教事业部将整体服务于政府、企业、高校的需求建设,形成生态资源整合……NaverKakao和LG集团将竞相参与韩国CBDC试点韩国央行(BOK)将于8月开始试行其数字韩元原型,因为该国正在加快央行数字货币(CBDC)采用计划的步伐。看起来韩国最大的三家科技巨头都很想参与进来。根据MoneyTod……别样RedmiK30S至尊纪念版优秀配置,2299值得入手按照以往几年来看,各大智能厂商对于新机的发布时间都会相继错开,以免产生商业上的更激烈竞争,而在今年十月份的时候,各大友商旗舰产品直接相继发布,就是为了能占据更好的销售市场,因此……光弘科技电子制造服务翘楚,受益大客户采购业绩大幅增长选股理由:营收与净利润大幅增长底部反弹翻倍成交量持续放大证券简称:光弘科技评级:A数据截止日期:2019年9月30日单位:亿元证券代码:300735;成立日期……4K的快乐用过才知道!次时代4K显示器怎么选?还记得在30系显卡发布会结束之后,许多用户都表示除了升级显卡之外,还得升级显示器。因为新一代显卡迎来了性能上的暴涨,能够在更高的分辨率下流畅运行。老黄也在发布会说到,4K……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网