我可以和面试官多聊几句吗?只是想偷点技能过来.MySQL优化篇(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. MyISAM表锁和InnoDB锁问题会在第二篇发布:MySQL优化篇,我可以和面试官多聊几句吗?--MyISAM表锁和InnoDB锁问题(二) 你可以将这片博文,当成过度到MySQL8.0的参考资料.注意,经验是用来参考,不是拿来即用.如果你能看到并分享这篇文章,我很荣幸.如果有误导你的地方,我表示抱歉. 接着上一篇MySQL…
Java技术栈 ,一般把连接数设置得大一些). 并发量:同一时刻数据库服务器处理的请求数量 3.超高的 CPU使用率:CPU资源耗尽出现宕机. 4.磁盘 IO:磁盘 IO性能突然下降.大量消耗磁盘性能的计划任务.解决:更快磁盘设备.调整计划任务.做好磁盘维护. 1.3 网卡流量:如何避免无法连接数据库的情况 1.减少从服务器的数量(从服务器会从主服务器复制日志) 2.进行分级缓存(避免前端大量缓存失效) 3.避免使用 select 进行查询 4.分离业务网络和服务器网络 1.4 大表带来的问题(…
在数据库中,如果索引太多,应用程序的性能可能会受到影响,如果索引太少,又会对查询性能产生影响.所以,我们要追求两者的一个平衡点,足够多的索引带来查询性能提高,又不因为索引过多导致修改数据等操作时负载过高. 文章会从,B+树索引,索引的分类,哈希索引,全文索引,这个几个方面讲解 B+树索引 索引的查找 索引的插入 索引的删除 索引的分类 聚集索引 辅助索引 联合索引 覆盖索引 哈希索引 哈希算法 自适应哈希索引 全文索引 倒排索引 全文检索索引缓存 全文索引的一些限制 InnoDB支持3种常见索引…
最近一直在写<手撕MySQL系列>文章,我发现自己的切入点有一些问题,虽尝试深入探究MySQL中的一些关键特性,但对于MySQL的知识掌握不太能够形成较好的体系化的知识网络.我感到在对全局了解不够清晰的时候,去深究一个知识点往往会事倍功半.所以打算通过这篇文章,分析SQL语句从头到尾的执行,串连一下MySQL当中的基础知识点.…
一条查询SQL执行流程图如下 序章 自我介绍 我是一条sql,就是一条长长的字符串,不要问我长什么样,因为我比较傲娇. 额~~不是我不说啊,因为细说起来,我可以细分为DML(Update.Insert.Delete),DDL(表结构修改),DCL(权限操作),DQL(Select)操作,一个个去介绍,我怕大家嫌我烦! 嗯,大家没什么意见,我继续往下自我介绍了~ 由于种类太多,这里我只是一条查询SQL,也就是一句DQL. 客户端按照Mysql通信协议,把我发送到服务端. 当我到达服务端后,我会在一…
我可以和面试官多聊几句吗?只是想... MySQL优化篇系列文章(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. 面试官:咦,小伙子,又来啦. 我:面试官,您好.一面确实收获不少,二面想获取更多的经验. 面试官:不错,不错,不错,年纪轻轻,有我当年一半的风范,挺有觉悟.接着聊MySQL锁问题. 我:好呀,这次我准备了MyISAM和InnoDB锁一些总结,希望您多多指教. 面试官:那,让我们进入今天的话题,一起讨论MySQL锁问题. 我:…
0. 写在之前 首先呢我的面试经历和一些面霸和收割机的大神相比绝不算丰富,但我这三个月应该能代表很大一部分人的心路历程:从无忧无虑也无知的状态,然后遭遇挫败,跌入低谷,连续数天的黑暗,慢慢调整,逼着自己不能松懈,看到改变,收获肯定,分享经历.   先大概说下自己的面试经历吧(详细的面试过程和面试题解析在最后): 相关的公司有四类: 笔试就挂了的:网易.头条.(对于笔试这个东西我到现在都没太多经验) 网易是第一家参加笔试的,面试会报销费用去总部,所以还是有难度,这个公司呢,内推不内推都要参加笔试.…
面试官:要不你来讲讲你们对MySQL是怎么调优的? 候选者:哇,这命题很大阿...我认为,对于开发者而言,对MySQL的调优重点一般是在「开发规范」.「数据库索引」又或者说解决线上慢查询上. 候选者:而对于MySQL内部的参数调优,由专业的DBA来搞. 面试官:扯了这么多,你就是想表达你不会MySQL参数调优,对吧 候选者:草,被发现了. 面试官:那你来聊聊你们平时开发的规范和索引这块,平时是怎么样的吧. 候选者:嗯,首先,我们在生产环境下,创建数据库表,都是在工单系统下完成的(那就自然需要DB…
写在前面 马上就是金九银十的跳槽黄金期了,很多读者都开始出去面试了.这不,又一名读者出去面试被面试官问了一个MySQL的问题:向MySQL中插入数据,如何实现MySQL中没有当前id标识的数据时插入数据,有当前id标识的数据时更新数据.其实,这题目一点也不难!! 先来个简单题目 正式回答这个面试题时,我们先来看一个简单点的题目:如何实现向MySQL中插入数据时,存在则忽略,不存在就插入?其实,这个简单点的题目与标题的题目有相同的地方:都是MySQL中不存在待插入的数据时,就将待插入的数据插入到M…
优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)System.out.print与Log Spring+SpringMVC+MyBatis+easyUI整合优化篇(二)Log4j讲解与整合 Spring+SpringMVC+MyBatis+easyUI整合优化篇(三)代码测试 Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例 Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockM…
优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)System.out.print与Log Spring+SpringMVC+MyBatis+easyUI整合优化篇(二)Log4j讲解与整合 Spring+SpringMVC+MyBatis+easyUI整合优化篇(三)代码测试 Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例 Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockM…
我是风筝,公众号「古时的风筝」,一个简单的程序员鼓励师. 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 面试官:我看你简历上写的你们公司数据库是 MySQL 读写分离的? 小阿花:嗯,是的. 面试官:那你说说数据库是主从怎么配置? 小阿花:额,都是 DBA 帮我们搞好的,我们直接用就好了. 面试官:你们主从结构遇到过什么故障没,比如从库或者主库挂掉了,怎么解决的? 小阿花:这个也是 DBA 搞的. 面试官:(微笑)好的,今天就到这里,回去等…
在文章<JVM之内存结构详解>中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化.作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点. 如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后的内部变化.现在意识到关注公众号"程序新视界"的好处了吧.在这里可以不断的刷新你的知识和认知. JV…
面试官:小明呀,redis 有几种数据结构呀? 小明:8 种 面试官:那你说一下分别是什么? 小明:raw,int,ht,zipmap,linkedlist,ziplist,intset,skiplist,embstr 面试官:额,你在说什么? 小明:在回答你的问题呀,这个问题我可是有过研究的,不会错的 面试官:好吧,今天的面试先到这里,你回去等通知吧 小明:... 上面发生的对话,到底是面试官有问题,还是小明有问题呢?其实是都有问题的,面试官的提问不准确,小明的回答也不准确. 但可以看出,面试…
一.前言 关于javascript中的this对象,可能已经被大家说烂了. 即使是这样,我依然决定将这篇文章给水出来.毕竟全国在新型肺炎的影响下,公司没法正常复工. 除了刷刷手机,还是要适当的学习一下. 废柴是真不好当,劳逸结合才是王道. 二.正戏开始 面试官:你能给我解释一下javascript中的this吗 我:(当然可以哇,胸有成竹,咳咳)javascript中的this对象是指函数运行时,在函数内部生成的一个对象. 面试官:那你大概说一下它的用法吧 我:(我觉得我需要开始吹水了) 我:好…
面试官:聊下Redis的分片集群,先聊 Redis Cluster好咯? 面试官:Redis Cluser是Redis 3.x才有的官方集群方案,这块你了解多少? 候选者:嗯,要不还是从基础讲起呗? 候选者:在前面聊Redis的时候,提到的Redis都是「单实例」存储所有的数据. 候选者:1. 主从模式下实现读写分离的架构,可以让多个从服务器承载「读流量」,但面对「写流量」时,始终是只有主服务器在抗. 候选者:2. 「纵向扩展」升级Redis服务器硬件能力,但升级至一定程度下,就不划算了. 候选…
在这篇回答里,就讲以我常规的面试流程为例,说下java方面大致会问什么问题,以及如何确认候选人达到招聘要求. 先说面试前准备,可能有些面试官是拿到简历直接问,而且是在候选人自我介绍时再草草浏览简历,但我不是这样. 1 问招人的项目经理,这个岗位需要的技术什么,比如必须Spring boot,有数据库调优经验优先考虑,要有2到3年相关经验等等.问清楚了,我就好在面试中组织自己的问题. 2 浏览候选人的简历,找出不利点和加分项. 不利点包括,候选人的学历,非计算机相关专业,候选人的经历看上去像培训班…
如果面试官问你:你了解 Java 内存模型吗? 你就可以使用这张图,按照这张图中的顺序和面试官开聊,正常情况下,聊一个小时是差不多的,这个时候,对你的处境是非常有益的,因为面试官的时间不多了.…
如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个人可以张口就来吧!? 这其实是前两天测试论坛上一个同学的问题,也是我以前面试时被问到一个问题,看到这个问题后,我的大脑开始搜索过去遇到的印象深刻或有价值的bug. 第一个冒出来的居然是一个段子: 用JS调微信的接口获取用户名,用同事老张的微信号做测试,结果一直获取的是null,怎么调都没发现错误,冥…
本文在个人主页同步更新~ 背就完事了 介绍:一些知识点相关的面试题和答案 使用姿势:看答案前先尝试回答,看完后把答案收起来检验成果~ 面试官:什么是构造函数 答:构造函数的本质是一个普通函数,他的特点是需要通过`new`关键字来调用,用来创建对象的实例.所有的引用类型,如[],{},function等都是由构造函数实例化而来.一般首字母大写. 解析:首字母大写只是约定俗成的规范.首字母小写的函数也可以用作构造函数. 面试官:什么是原型和原型链 答:原型模式是JS实现继承的一种方式.所有的函数都有…
面试官:怎么做JDK8的垃圾收集器的调优? 看着面试官真诚的眼神,心中暗想看起来年纪轻轻却提出如此直击灵魂的问题.擦了擦额头上汗,我稍微调整了一下紧张的情绪,对面试官说: 在JDK8中有Serial收集器.Parallel收集器.CMS收集器.G1收集器这么几种收集器,需要根据实际硬件配置和业务需求进行选择调优. 如此浅显的回答,无法让面试官达到深入的要求,肯定不能满足面试官强烈的需求,果不其然面试官又追问到:如果是桌面应用,内存占用也就100MB,应该选择哪种垃圾收集器呢?我快速的回答:Ser…
[每日一题]面试官问:谈谈你对ES6的proxy的理解? 关注「松宝写代码」,精选好文,每日一题 作者:saucxs | songEagle 一.前言 2020.12.23 日刚立的 flag,每日一题,题目类型不限制,可以是:算法题,面试题,阐述题等等. 本文是「每日一题」第 8 题:[每日一题]面试官问:谈谈你对ES6的proxy的理解 往期「每日一题」: 第 7 题[每日一题]面试官问:for in和for of 的区别和原理? 第 6 题[每日一题]面试官问:Async/Await 如何…
建表的时候,不要用null赋默认值,如:字符串的设置'',数据类型的设为0,不要将null设为默认值. 在MySQL中没有 full [outer] join,用union代替 各种 JOIN SQL:https://mp.weixin.qq.com/s?__biz=MzU4OTI3NzY4OA==&mid=2247483746&idx=1&sn=94b1a14569ff12a4776e48ee8e431ec3 使用 explain 命令显示查询执行计划时,key_len只计算wh…
在上一篇文章:Mysql索引(一篇就够le) 中介绍了索引的基本使用,分类和原理,也强烈建议先读Mysql索引(一篇就够le),然后继续本文的阅读 我们也知道mysql的优化可以从很多的方面进行,比如硬件,换个ssd的磁盘也很爽,环境的搭建,比如读写分离等,参数的配置,表结构的设计,字段类型的合理选用,sql的正确书写方式,索引的构建等,这里我们主要从sql的查询做优化,主要是基于走索引的方式去学习. 一.优化能够带来什么 优化能带来的肯定是爽!!!当你作为一个用户去体验某个网页正在加载中...…
1.MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源 (如 CPU.RAM.I/O 等)的抢占以外,数据也是一种供许多用户共享的资源.如何保证数 据并发访问的一致性.有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素. 2.MySQL锁特性 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制,归纳表格如下: 存储引擎          锁类型 MyISAM MEMORY…
大家好,我是melo,一名大三后台练习生 专栏回顾 索引的原理&&设计原则 欢迎关注本专栏:MySQL高级篇 本篇速览 在我们上一篇文章中,讲到了索引的原理&&设计原则,知道了索引如何使用. emm?那具体什么场景需要用到索引,我们要怎么分析SQL语句,并对其进行优化呢,这篇将从以下几点带你攻破ta: 详解explain分析SQL 索引失效的几个场景 ...... SQL优化的几个场景 大批量插入 order by group by limit分页 insert操作 嵌套查…
1.概述 前面我们介绍了MySQL中怎么样通过索引来优化查询.日常开发中,除了使用查询外,我们还会使用一些其他的常用SQL,比如 INSERT.GROUP BY等.对于这些SQL语句,我们该怎么样进行优化呢?本节将针对这些SQL语句介绍一些优化的方法. 2.优化INSERT语句 当进行数据INSERT的时候,可以考虑采用以下几种优化方式:●如果同时从同一客户插入很多行,尽量使用多个值表的INSERT语句,这种方式将大大缩减客户端与数据库之间的连接.关闭等消耗,使得效率比分开执行的单个INSERT…
1.概述 在数据库设计过程中,用户可能会经常遇到这种问题:是否应该把所有表都按照第三范式来设计?表里面的字段到底改设置为多大长度合适?这些问题虽然很小,但是如果设计不当则可能会给将来的应用带来很多的性能问题.本章中将介绍MySQL中一些数据库对象的优化方法,其中一些方法不仅仅适用于MySQL,也适用于其他类型的数据库管理系统. 2.优化表的数据类型 表需要使用任何的数据类型,是需要根据应用程序来判断的.虽然应用程序设计的时候需要考虑字段的长度留有一定的冗余,但是不推荐让很多字段都留有大量的冗余,…
本文阅读时间大约6分钟. 其实写这篇文章,也是来自一个知识星球读者的提问,他在二面的过程中被问到了,由于他简历中写道有 MySQL 调优经验,但这个问题没有回答好,二面被刷了. 其实我们刚学习 C 语言的时候,就接触过 NULL,比如下面这句代码. int *p = NULL; 它实际上表示将指针指向一块不被使用的内存地址,一般会在宏中定义好. 那么我们常用的 Java 语言,同样也用到 null,表示一个空引用,如果你不小心引用了,那么就会抛出 NullPointerException,就像昨…