Browsed by
分类: 读书

无语,我差点被面试官怼坏了,又给我问到MySQL索引

无语,我差点被面试官怼坏了,又给我问到MySQL索引

閱讀本文約花費: 23 (分鐘)前一阵子,又跑出去搞了一场面试,心态算是崩了,关于MySQL索引的原理及使用被面试官怼的体无完肤,立志要总结一番,然后一直没有时间(其实是懒……),准备好了吗? image 一、MySQL中索引的语法 创建索引 在创建表的时候添加索引 在创建表以后添加索引 注意: 1、索引需要占用磁盘空间,因此在创建索引时要考虑到磁盘空间是否足够 2、创建索引时需要对表加锁,因此实际操作中需要在业务空闲期间进行 根据索引查询 删除索引 查看表中的索引 查看查询语句使用索引的情况 二、索引的优缺点 优势:可以快速检索,减少I/O次数,加快检索速度;根据索引分组和排序,可以加快分组和排序; 劣势:索引本身也是表,因此会占用存储空间,一般来说,索引表占用的空间的数据表的1.5倍;索引表的维护和创建需要时间成本,这个成本随着数据量增大而增大;构建索引会降低数据表的修改操作(删除,添加,修改)的效率,因为在修改数据表的同时还需要修改索引表; 三、索引的分类 常见的索引类型有:主键索引、唯一索引、普通索引、全文索引、组合索引 1、主键索引:即主索引,根据主键pk_clolum(length)建立索引,不允许重复,不允许空值; 2、唯一索引:用来建立索引的列的值必须是唯一的,允许空值 3、普通索引:用表中的普通列构建的索引,没有任何限制 4、全文索引:用大文本对象的列构建的索引(…

Read More Read More

俞渝内部信:李国庆会持续演出闹剧

俞渝内部信:李国庆会持续演出闹剧

閱讀本文約花費: 2 (分鐘)  4月30日,当当网执行董事俞渝向全体员工发内部信,称李国庆带人突然闯入抢公章,并且在网上接连自导自演闹剧,引发舆情关注。俞渝还表示,当当网没有召开过股东会,没有修改过章程,李国庆不是当当的管理层,公司早已经跟他结束劳动关系,他用股东身份滋事,我们已经报案。   以下是内部信原文:   各位当当童鞋,   今年的春节、清明两个假期,大家因为担心疫情,都过得不舒坦。终于艳阳高照、春去夏来,我们迎来了五一小长假。   仓店和客服的同事,需要坚守岗位,继续服务当当顾客。我们全体当当人,谢谢你们:劳动者光荣,向劳动者致敬!   武汉的当当同事,你们憋得最久,等着去跟你们相聚!鸭脖啃起,热干面休息,本人强推武汉的腰肝面。   刚刚过去的书香节,对当当人是个特殊的时点,我们很多部门备战几十天,全公司奋力拼搏,克服了疫情带来的零售萧条,创造和见证了历史新高!我们还沉浸在喜悦当中时,李国庆带人突然闯入抢公章,并且在网上接连自导自演闹剧,引发舆情关注。   李国庆去年起诉离婚,更多的是想得到当当股权,法院的审理还在进行当中。而他为了私利,无视法律进程,肆意扰乱当当。从摔杯到抢章,他会持续演出闹剧,除了吃瓜,大家不必理会。当当网没有召开过股东会,没有修改过章程,李国庆不是当当的管理层,公司早已经跟他结束劳动关系,他用股东身份滋事,我们已经报案。   我们宅家数月,这次五…

Read More Read More

《microservice & serverless》的一点感想

《microservice & serverless》的一点感想

閱讀本文約花費: 6 (分鐘)超哥是来自Amazon的顶级的架构师,经历了Amazon整个向微服务架构迁移的过程,以及向serverless的演化过程,有着极其丰富的经验,年过40,一直站在技术的最前沿,始终保持对技术的执着追求和热情,是名副其实的技术大牛,能与之一起工作,荣幸之至!今天超哥给我们分享的主题《microservice & serverless》,是超哥实际工作经验的一些分享,也为公司架构的演化提供了新的思路和指导。 microservice(微服务)这个可能是这些年最火的一种架构设计了,频繁地出现在各种技术大会上,各大互联网巨头纷纷向这种架构演化,很多小的互联网公司也往这些概念上去靠,大有一种不做微服务就要落伍的趋势。事实上,很多对于微服务的理解比较粗浅,盲目的微服务化甚至会带来更多的负面影响。 目前Amazon内部运行着超过2w过微服务,但是这些微服务并不是凭空产生的,在这之前,运行的服务都是超大的单体服务,但是随着业务的发展,这种服务在整个研发的pipeline(设计→研发→编译→测试→发布→部署→运维)中都出现了一些问题。设计阶段,老的单体服务会给我们带来一些技术限制,比如有些技术只有python语言的实现,但是我们的服务使用java开发,这样我们不得不拿出一个更复杂的设计去解决类似的问题;研发阶段,随着开发人数越来越多,代码冲突的问题越来越多,我们不…

Read More Read More

苹果公司建议不要滑动关闭后台程序,因会损害电池寿命,消息属实吗?

苹果公司建议不要滑动关闭后台程序,因会损害电池寿命,消息属实吗?

閱讀本文約花費: 2 (分鐘) 据外媒报道,苹果表示,在iphone上滑动关闭应用程序可能会缩短电池寿命,并使设备变慢。是否属实? 苹果从头到尾只说过“应用无响应了才需要强制关闭后台。” 这是一次以讹传讹的经典案例,我一直都说国内所谓的“数码媒体”、“自媒体”水平真的不算太高。 以后新闻里带“外媒”俩字的,建议自行谷歌看看原文再判断。 1、2020 年 2 月 18 日,苹果说“应用无响应了才需要强制关闭后台” 当天苹果官网更新了一个页面,科普了“强制关闭应用”的操作(可能苹果也知道 iOS 13 有多烂了吧?)。 其中苹果解释了一句:只有在应用无响应的时候才需要强制关闭后台。 2、2020 年 2 月 24 日 11 点,英国太阳报说“震惊!关闭后台会让 iPhone 变慢且减少续航“ 是的,太阳报这种八卦小报的标题就是这么的 UC 震惊部。 该新闻提到了苹果新发布的“强制关闭后台”页面,并且引用了数码博主 John Gruber 在 2017 年的博文“关闭后台会降低续航且变慢”。 3、2020 年 2 月 24 日 15 点, LADbible(外媒外媒)说“苹果说关闭后台对 iPhone 电池不好!“ 和太阳报一个套路,也是引用 John Gruber 的博文说明关闭后台影响电池续航和性能。 4、2020 年 2 月 27 日,国内媒体“外媒:苹果说关闭后台会降低 iPho…

Read More Read More

方方的成名之路最应该感谢政府

方方的成名之路最应该感谢政府

閱讀本文約花費: 9 (分鐘)文|沉雁 昨天一位读者朋友私信我说,“方方被骂得那么惨,沉雁你还是该发文帮方方说说话”。我当时确实没看见骂方方的文章,我就回答了一句“在哪骂”。结果,这位读友就很不高兴了,给我回了一段有点生气的话,他认为我是装没看见。 之所以这位读友很不高兴我的没看见,根本原因是她太爱方方了,她不忍心方方被骂。我相信,像他一样爱方方爱到这般如痴如狂的状态,不是千万,而是亿万。莫名其妙,我内心深处升腾起一种说不清楚的嫉妒感。做作家能做到方方这程度,前无古人后无来者。我总觉得,方方不应该有这么冲天香阵透全球的名气,但事实不以我的意志为转移,方方现在的名气就有“我花开后百花杀”的破竹之势。 委实说,我除了看过方方几篇封城日记,我就没看她其它任何一部作品。再实话实说,我对她的封城日记没有特别的感觉,因为太没火药味了,根本不符合我们时评人的胃口。所以,我才写了那篇《我不同意方方的某些主张》。她宅心仁厚劝蔡丽之流自己辞职谢罪,我绝不同意,我坚决主张蔡丽之流应该剖腹或凌迟才算谢罪。 尽管后来我写了一篇10W加的《方方,这季暖阳下最亮的一抹芬芳》,但那不是源自我本能的冲动,而是因为什么呢?而是因为我看赞美方方的文章浩如烟海,但几乎都没把方方赞到点子上。为了显摆我看问题的穿透力,所以我才热情澎湃写了那篇10W加。 之所以我有点嫉妒方方,我始终认为,她有今天之大名,绝不仅仅是因为她文章写…

Read More Read More

面试官:你知道java类是怎么跑起来的吗?问的我一脸懵

面试官:你知道java类是怎么跑起来的吗?问的我一脸懵

閱讀本文約花費: 15 (分鐘)类从加载虚拟机内存中开始到卸载出内存为止,生命周期包括:加载、验证、准备、解析、初始化、使用、卸载。 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序进行,而解析阶段则不一定,它在某些情况下可能在初始化阶段后在开始,因为java支持运行时绑定。 加载阶段 通过一个类的全限定名来获取定义此类的二进制字节流(没有指明二进制字节流要从一个Class文件中获取,可以从ZIP包中读取,从网络中获取,运行时计算生成等等) 然后,将这个字节流所代表的静态储存结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的java.lang.Class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象。 该Class对象作为方法区这个类的各种数据的访问入口完成后,虚拟机外部的二进制字节流就按照虚拟机所需格式储存在方法区中。 这里稍微理解一下对象和类的概念,对象是实例化的类。类的信息是存储在方法区中的,对象是存储在Java堆中的。类是对象的模板,对象是类的实例。 类的加载由类加载器完成,类加载器通常由JVM提供,这些类加载器也是前面所有程序运行的基础,JVM提供的这些类加载器通常被称为系统类加载器。除此之外,开发者可以通过继承ClassLoader基类来创建自己的类加载器。 其实加载阶段用一句话…

Read More Read More

是你们,把方方推上了诺贝尔文学奖

是你们,把方方推上了诺贝尔文学奖

閱讀本文約花費: 8 (分鐘)疫情期间,蜗居武汉的方方写了60篇日记,她只是记录自己的心得想法,她并没有想到要结集出版。可是,你们疯狂污蔑方方,咒骂方方,硬是把一个作家咬成了和钟南山齐名的名人。了解的人知道方方是著名作家,不了解的人还以为方方是著名医学家。中国出版方嗅觉灵敏,准备将方方这60篇日记结集出版。可是,你们在网上翻云覆雨,血雨腥风,你们一手制造的萧杀气氛,吓跑了出版方。你们攻击方方,成为了2020年春天最著名的公众事件之一。世界上发行量第一的《纽约时报》,和发行量第二的《华盛顿邮报》,理所当然地报道了发生在中国的“因为一本书而引发的公共事件”。而且都放在头版头条。  方方的60篇日记,本来没有名字,是你们起名叫《武汉日记》。好吧,现在《武汉日记》驰名全世界。《武汉日记》即将在美国出版。而且,一出版,肯定会引起强烈轰动。因为疫情是全世界当下最关注的话题,因为截至目前只有方方写了这个题材。现在,有世界著名作家评论家一起推荐方方,参加2020年诺贝尔文学奖评选。是你们,一手把方方推向了全世界。是你们,一手把方方推向了诺贝尔文学奖。我用十根脚指头都能想到,方方肯定给你们钱了,你们肯定拿了方方的红包。没拿钱,没拿红包,却把方方推向了诺贝尔文学奖,说给你听,你信吗? 这一百年来,因为一本书引发公共事件的,只有一例。这个作家叫拉什迪,他这本书叫《撒旦诗篇》。1948…

Read More Read More

戴森印象记

戴森印象记

閱讀本文約花費: 36 (分鐘)2020 年 2 月 28 日, 著名物理学家弗里曼·戴森 (Freeman Dyson) 在美国去世, 享年 96 岁。 戴森去世的次日早晨, 我收到《上海书评》编辑的微信, 约写一篇关于戴森的文章。 我说我只能写一篇不全面, 且并非一味 “点赞” 的文章。 诸位现在读到的就是这篇文章。 这篇文章之所以不全面, 是因为戴森太全面了——他的兴趣涉及了太多领域, 我不仅没有时间追随, 很多领域甚至没有兴趣追随, 因此注定不能全面。 至于并非一味 “点赞”, 大家读下去就清楚了。 虽然文章不全面, 我书架上和电脑里的戴森著作倒是比较全面的, 只可惜聚书快而读书慢, 已读过的只占一小部分。 除戴森本人的著作外, 我还读过美国作者 P. F. 舍维 (P. F. Schewe) 撰写的戴森传记《Maverick Genius》 (特立独行的天才) 的若干章节。 这篇文章本质上是那些阅读的随感, 也是阅读所得的戴森印象, 故曰 “印象记”。 最早读戴森是在二十多年前。 当时我在复旦, 不久将要赴美, 最后几个月闲来无事, 便从图书馆找了些闲书看, 戴森的《宇宙波澜》也在其列。 后来回想起来, 当时读那本书印象最深的细节是: 一位学生通过公开可查的资料, 汇集了制造原子弹的步骤, 精确得让戴森大吃一惊, 在给了学生 “A” (“优”) 之后, 嘱咐其烧掉文章。 …

Read More Read More

SQL 中的 NULL 你真的懂了吗?

SQL 中的 NULL 你真的懂了吗?

閱讀本文約花費: 5 (分鐘)SQL 中的 NULL (译自 NULL Values in SQL Queries) SQL 中的 NULL 到底是怎样一个概念呢?有什么要注意的吗?这篇文章就是要把它讲清楚。 查询某列值为 NULL 的数据 当想查询某一列值为 NULL 的数据时,下面两种哪个更好呢? SELECT * FROM SOME_TABLE WHERE SOME_COLUMN = NULL 还是 SELECT * FROM SOME_TABLE WHERE SOME_COLUMN IS NULL 答案是,第二种更好。 为什么呢?为什么其他的比较都不用 IS 呢?比如想知道一个字段值是不是等于1,可以用一个简单的 WHERE 子句: WHERE SOME_COLUMN = 1 所以到底为什么对 NULL 区别对待使用 IS 呢? 因为:在 SQL 中,NULL 表示「未知」的意思,就是「未知」,不知道,不了解,未知!(原文用词:「unknown」) NULL 是「未知」 在大多数数据库中,NULL 和空字符串是有区别的。 但也有例外,比如在 Oracle 中,根本就不允许一个值是空字符串,Oracle 中所有的空字符串都会自动转换成 NULL。 不过对于其他大多数数据库来说,NULL 和空字符串是区别对待的: 空字符串也是一种值,只不过是空的而已。 NULL 是一个「未知」…

Read More Read More

Coolshell:应该知道的Linux技巧

Coolshell:应该知道的Linux技巧

閱讀本文約花費: 14 (分鐘)这篇文章来源于Quroa的一个问答《What are some time-saving tips that every Linux user should know?》—— Linux用户有哪些应该知道的提高效率的技巧。我觉得挺好的,总结得比较好,把其转过来,并加了一些自己的理解。 首先,我想告诉大家,在Unix/Linux下,最有效率技巧的不是操作图形界面,而是命令行操作,因为命令行意味着自动化。如果你看过《你可能不知道的Shell》以及《28个Unix/Linux的命令行神器》你就会知道Linux有多强大,这个强大完全来自于命令行,于是,就算你不知道怎么去做一个环保主义的程序员,至少他们可以让你少熬点夜,从而有利于你的身体健康和性生活。下面是一个有点长的列表,正如作者所说,你并不需要知道所有的这些东西,但是如果你还在很沉重地在使用Linux的话,这些东西都值得你看一看。 (注:如果你想知道下面涉及到的命令的更多的用法,你一定要man一点。对于一些命令,你可以需要先yum或apt-get来安装一下,如果有什么问题,别忘了Google。如果你要Baidu的话,我仅代表这个地球上所有的生物包括微生物甚至细菌病毒和小强BS你到宇宙毁灭) 基础 学习 Bash 。你可以man bash来看看bash的东西,并不复杂也并不长。你用别的sh…

Read More Read More

未选择的路

未选择的路

閱讀本文約花費: 2 (分鐘)未选择的路 罗伯特·弗罗斯特 黄色的树林里分出两条路 可惜我不能同时去涉足 我在那路口久久伫立 我向着一条路极目望去 直到它消失在丛林深处 但我却选择了另外一条路 它荒草萋萋,十分幽寂 显得更诱人,更美丽 虽然在这条小路上 很少留下旅人的足迹 那天清晨落叶满地 两条路都未经脚印污染 呵,留下一条路等改日再见 但我知道路径延绵无尽头 恐怕我难以再回返 也许多少年后在某个地方, 我将轻声叹息将往事回顾: 一片树林里分出两条路—— 而我选择了人迹更少的一条, 从此决定了我一生的道路。 The Road Not Taken – by Robert Frost Two roads diverged in a yellow wood, And sorry I could not travel both And be one traveler, long I stood And looked down one as far as I could To where it bent in the undergrowth; Then took the other, as just as fair, And having perhaps the better claim, Because it was grassy and wanted wear; T…

Read More Read More

软件架构设计-五视图方法论(2)

软件架构设计-五视图方法论(2)

閱讀本文約花費: 8 (分鐘)1.每个人都可以做成为架构设计师 不懂软件的和刚入行的人们一听到架构设计,都认为是非常的高大上课题,是一个遥不可及的领域,一般人是不能做的。听起来云里雾里的,第一印象除了来自微软,阿里这些NB的公司里面的人其余的都不能做出架构似的,这是一种先入为主的思想,因为大家都在强调架构师的重要性,他的薪资有多么的高,在整个社会对他的认定导致很多人对架构设计望而生畏。放正自己的心态其实架构设计并没有多么的复杂。我们是从编码入行的,在编码实现功能的过程中我们或多或少的设计了属于自己的软件架构了。 为什么说软件架构师需要多少年的工作经验,因为软件架构就是系统的草图,不仅是代 码编写而且包括部署,运行、开发等这些方面进行设计,目的是为了保证软件开发、运行、扩展、性能、安全、伸缩等等质量的一个保证。只要在编码过程中不仅仅要提升编码的质量而且要留心其他方面的知识积累与学习,用不了多久你也能成为一位优秀的架构设计师。 2.什么是架构设计 我们要成为架构设计师我们需要了解什么是架构设计。简单一点,架构设计就是一个系统的草图,描述了构成系统的抽象组件,以及各个组件之间的是如何进行通讯的,这些组件在实现过程中可以被细化为实际的组件比如类或者对象。在面向对象领域中,组件之间的联通通常面向于接口实现的。 在“软件架构简介”中David Garlan 和Mary Shaw 认为软件架构师…

Read More Read More

Kubernetes HPA 详解

Kubernetes HPA 详解

閱讀本文約花費: 32 (分鐘)Kubernetes HPA 详解 在前面的学习中我们使用用一个 kubectl scale 命令可以来实现 Pod 的扩缩容功能,但是这个毕竟是完全手动操作的,要应对线上的各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容。为此,Kubernetes 也为我们提供了这样的一个资源对象:HorizontalPodAutoscaling(Pod水平自动伸缩),简称 HPA,HPA 通过监控分析一些控制器控制的所有 Pod 的负载变化情况来确定是否需要调整 Pod 的副本数量,这是 HPA 最基本的原理: 我们可以简单的通过 kubectl autoscale 命令来创建一个 HPA 资源对象, HPAController默认 30s轮询一次(可通过 kube-controller-manager 的 –horizontal-pod-autoscaler-sync-period 参数进行设置),查询指定的资源中的 Pod 资源使用率,并且与创建时设定的值和指标做对比,从而实现自动伸缩的功能。 Metrics Server 在 HPA 的第一个版本中,我们需要 Heapster 提供 CPU 和内存指标,在 HPA v2 过后就需要安装 Metrcis Server 了, MetricsServer 可以通过标准的 Kubernetes A…

Read More Read More

软件架构设计-五视图方法论

软件架构设计-五视图方法论

閱讀本文約花費: 12 (分鐘)在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜,但是总让很多刚入门的 ​​​在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜,但是总让很多刚入门的人感觉很神秘,甚至是高深莫测。很少有人对“架构”有全面的了解和认识能并说清楚架构是什么,更谈不上掌握了。事实上,也只有极少数人能成为或者被冠以“架构师”这样的title。为此,笔者总结了对架构的一些理解,希望能够补充很多初入门的人在这方面认识上的不足,纠正一些误解。高手和老鸟就直接跳过吧。 架构的分类 对于“架构”来讲,理论上划分了5种架构视图,分别是:逻辑架构、开发架构、运行架构、物理架构、数据架构。根据名字,大家都可能大概能猜到其侧重点和含义。这里先用通俗的文字简单介绍下,便于大家理解,大家可以不必纠结概念和这些理论。 逻辑架构:逻辑架构关注的是功能,包含用户直接可见的功能,还有系统中隐含的功能。或者更加通俗来描述,逻辑架构更偏向我们日常所理解的“分层”,把一个项目分为“表示层、业务逻辑层、数据访问层”这样经典的“三层架构”。 开发架构:开发架构则更关注程序包,不仅仅是我们自己写的程序,还包括应用程序依赖的SDK、第三方类库、中间价等。尤其是像目前主流的Java、.NET等依靠虚拟机的语言和平台,以及主流的基于数据库的应用,都会比较关注。和逻辑架构有紧密的关联。 运…

Read More Read More

刘韧:编辑的价值

刘韧:编辑的价值

閱讀本文約花費: 7 (分鐘)编者按:本文为DoNews编辑部内训课实录,创作于2011年7月。由传媒见闻谭缘于2020年4月根据录音整理。 记者的价值,就是替读者跑腿,读者不在现场,记者把现场发生的事告诉读者,那么编辑的价值在哪呢? 《诗经》、《易经》和《春秋》,这三部作品都是孔子编辑的,而不是他写的,他说“诗三百,思无邪”,是因为他把有邪的删掉了,把符合儒家价值观的留了下来。孔子是个编辑。 孔子还编了《易经》,《易经》传说是周文王被困山谷时写的。但《易经》最早的编纂是孔子做的,所以易经中很多思想和儒家是一致的。我们今天看到《易经》的解释,其实都来源于孔子。《春秋》是一本编年史,也是孔子编的。 最早的报纸是没有编辑的,只有排版。排版只用把所有的新闻堆在一起就可以了,当时信息特别少,能得到的信息都是重要信息。现在每天能产生数万条新闻,读者注意力极限不超过一百条。这样的比例,就要求必须有编辑,没有编辑,报纸是没法看的。现在是信息过载,而不是稀缺,过载要求必须选择。 上世纪90年代,我在安徽阜阳能把所有能接触到的信息都看一遍。当时的报纸非常少,电视也只有中央台很少的几个频道。进入互联网和卫星时代后,就过渡到了信息过载的阶段。2000年,我第一次装上卫星电视时,我太惊讶了,全世界的电视我都能看到。上世纪90年代初没有编辑其实还无所谓,因为信息很少,特别在中国,几乎没什么信息。我能把《北京…

Read More Read More

写作 博客/公众号 工具分享

写作 博客/公众号 工具分享

閱讀本文約花費: 7 (分鐘)不断打磨下来,形成自己的一套写作工具链,今天整理分享给大家,希望帮助大家的提高写作效率。 写作可以分为三步: 写作前 写作中 写作后 按照这三步介绍这个过程中我用到一些工具。 写作前 trello 官网地址:https://trello.com/ 这是一款任务管理工具,类似于敏捷开发中看板,我们可以快速管理任务。 日常工作我只要想到一个 idea,就会第一时间先记录到 idea 列表中。这里千万不要高估自己的记忆力,如果想到了,感觉记录下来。以前上午灵光一现想到一个 idea,准备晚上写一下,然后晚上就想不起来。。。 前期准备时,可以将收集到的资料,素材,全部放到具体卡片中。 当我们开始写作后,拖动到下一个列表,完成之后,再拖到下一个列表,这样写作任务非常清晰。 trello 十分强大,这里只是用了小功能,感兴趣的同学可以深入研究一下。 写作中 typora+iPic+坚果云 markdown 编辑器:typora,下载地址:https://typora.io/。 图床工具:iPic,下载地址:https://toolinbox.net/iPic/ 云盘:坚果云,下载地址:https://www.jianguoyun.com/ iPic 只支持 macos 在 typora 中使用 markd…

Read More Read More

Scroll Up