Sql语句优化

以前经常想一天一篇博客坚持下去,最后依然随了这点爱好,扯淡,😄😄。最近面试的问题最多的就是数据库了。最重要的就是数据库设计,数据库内部原理,比如索引算法,主键原理,具体为什么使用这些算法。然后就是做了哪些sql优化。说实话,是没做过啥特别的sql优化,然后今天专门花时间看了看文档,翻译,整理,记录一下。以方便以后查阅。后面想再看一看索引算法,Btree算法,各个索引为什么要使用这些算法。本篇文章还有一些杂乱的记录。扯淡,乃我此生之爱!

数据库的性能主要包括两个方面,第一是硬件级别的,硬件主要包括CPU,IO以及网络方面,这方面不是文章的关键。第二是软件级别。包括数据库配置,数据库设计以及查询优化。具体看看官网Optimization Overview。头痛的很。

排序算法

休息了一个月了,真真实实的睡过来的。主要是没想清楚前边该怎么走,现在稍微明白了。该继续工作,努力了。这几天闲来无事,就做了几件事,第一个是把博客迁移到了VPS上面,毕竟国内上Github还是有点慢,之前不上SS,博客就上不去。本来是想用Ghost搭博客系统的,不过单纯以技术博客来说,用Ghost有点大材小用了。最后还是回来用Hexo。不过没几个自己喜欢的主题。之前改了几个主题,都觉得改的不咋样,前端技术太烂加上超强的审美能力,尴尬。第二个是搭了个SS管理界面,当前只有日本和新加坡节点,反正用着玩。不过加用户就方便了。但个人用的话还是workers靠谱,随意上2w。第三就是学习了下算法,之前面试的面试题没看懂。心都碎了。下面是记录比较基础的几个算法。慢慢写吧。后面尽量多接触算法。毕竟哪儿都不缺码农。后面就做Java,完善算法,数据库能力。

Spring Cloud服务治理(一)

20170627149857360736999.jpg

前面写了一篇Spring boot使用案例/)。这一节来入门Spring Cloud Eureka服务治理。Spring Cloud Eureka使用的是Netflix Eureka,然后在其基础之上,对Spring boot做了二次封装。Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。并且Eureka客户端注册到Eureka服务注册中心后,会每30s发送一次心跳,如果几分钟步伐送心跳。那就会被服务中心移除。这篇文章主要记录Spring Cloud Eureka的注册中心搭建,服务中心搭建,高可用的注册中心以及服务的发现和消费。

Spring boot学习(一)

前段时间刚刚把iOS基础学完,感觉没太大意思。现在开始玩微服务。在Java圈内,大家都知道,国外的Spring Cloud和国内的Dubbo是两大框架,不过Dubbo社区活跃度没有Spring Cloud这么高。而且严格来讲,Dubbo只能算是Spring Cloud服务管理的一部分。具体的情况等学完再来评论。当然,微服务还是选择Spring Cloud啊,Spring在Java Web的影响已经无需言语了。Spring boot只能算是微服务的一个小部分,慢慢来。与正常开发的SSM这些比较而言,Spring boot做了封装,简化了很多。并且配置文件也没那么一大串了,每次写项目copy配置文件都烦了。

Tigase线程启动详情

2017031796436Screen Shot 2017-03-17 at 11.21.59 PM.png

上一篇博文写的有些糟糕,全是代码,看起来肯定不舒服。我们写到了线程启动的地方,这篇文章就记录Tigase线程启动的详细情况。线程启动之后跟Socket相关的内容,以及IO方面接收消息和发送消息的具体情况。Tigase使用了NIO方面的东西,可以稍微学习学习。也可以复习一下Socket相关的知识。应该很好玩,期待。

Tigase运行流程分析

2017031685814Screen Shot 2017-03-16 at 10.52.05 PM.png

IM项目已经搭建起来,第一版本需要将原生的XMPP接口开发成为HTTP接口,比如,注册,修改个人信息等等。每次看Tigase源码,总是很累啊,人家从不用主流框架,一言不合都是自己写框架。上一篇文章记录Tigase整个开发环境的搭建,这篇文章我们来分析分析Tigase的运行流程,深入的研究一下Tigase的运行机制。为后期接口更新打下基础。这个星期实在累的不行。想休息休息了。周末好好吃一顿,或者好好休息一天。

从Seafile到Jenkins

20170315254652017-03-16.jpg

因为项目需要,又重新搭建了一次Seafile和Jenkins,Seafile是个人的私有云盘。之前搭建过一次,因为服务器太贵,一气之下全部卸了。这次搭建更加顺手,但是还是没能快速搭建和部署,还是花了半天。所以记录一下,下次再次搭建的时候,如果忘了直接照着做就ok。节约时间。Jenkins是自动化测试,部署,打包工具,两者都使得工作或者生活更方便,安全。这篇文章实在Centos7下进行搭建。Debian系列也没什么差别,上车。

Tigase开发环境搭建

20170314920532017-03-15.jpg

前面一篇博客晚上写,主要是今天在折腾Intelij Idea下搭建Tigase开发环境,最后搞的我直哭,没办法了,直接换成Eclipse开发,反正也没差。因为项目可能需要多一个人折腾,所以,需要稍微整理下Tigase开发环境的搭建。这里使用Eclipse作为IDE,从源代码下载到数据库创建,这里我们选择mysql数据库,然后各种配置,最后使用spark进行调试。说简单也简单,但是还是做下笔记吧。毕竟人老了。记忆里不如当年。

Date和前端Banner实现

20170313678392017-03-14.jpg

前面一篇文章简单的记录了DOM的创建,插入,删除,复制。这篇文章也是学习笔记,记录了前端使用javascript创建Banner的全过程。从利用循环动态生成dot到使用定时器实现轮播的效果。还有一些Date的使用。这几天算法题就一直做链表相加算法。啥都能停,算法不能停。地球不爆炸,我就不放假,宇宙不重启,我就不休息,风里雨里节日里我都在这里等着你。

JavaScript的Class封装和Dom操作

20170312606632017-03-13.jpg

文章开始之前,先对Emmet赞美下,没有这东西,一个个字符的敲,早晚得疯之前做了一个页面,感觉手都敲废了,暂时认识到,前端花在布局,即CSS上面的时间实在太多,html不难,javascript不难,CSS最难。不扯淡了。Emmet是一个快速写html的插件。具体可以看看文档。 这篇文章算是对学习javascript的类选择器封装和dom节点的创建,插入,删除,克隆的记录,没有特别的应用场景。纯粹学习。这篇文章的知识整理自javascript学习教程。一步步来封装一个完整的Class。平时写CSS的时候,类选择器是用的最多的。假如我们需要对具有相同的className的标签更改某些属性,那么就需要用到document.getElementsByClassName("****")