MySQL数据库开发规范
所有的数据库对象名称必须使用小写字母并用下划线分割(MySQL大小敏感,见名知意,最好不超过32字符)
所有的数据库对象名称禁止使用MySQL保留关键字(如 desc、range、match、delayed 等,请参考 MySQL 官方保留字http://dev.mysql.com/doc/refman/5.7/en/keywords.html)
临时库表必须以tmp为前缀并以日期为后缀(tmp_)
备份库和库,必须以bak为前缀,日期为后缀(bak_)
所有存储相同数据的列名和列类型必须一致。(在多个表中的字段如user_id)
mysql5.5之前默认的存储...
设计模式主要分三个类型:创建型、结构型和行为型。创建型
Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点
Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。
Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。
Builder,建造模式:将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示。
Prototype,原型模式:用原型实例指定创建对象的种类,并且通过拷贝...
MyBatis介绍在介绍MyBatis之前先简单了解几个概念:ORM,JPA。
ORMORM(Object-Relationship-Mapping):是对象关系映射的意思,它是一种思想,是指将数据库中的每一行数据用对象的形式表现出来。
JPAJPA(Java-Persistence-API):是Java持久化接口的意思,它是JavaEE关于ORM思想的一套标准接口,仅仅是一套接口,不是具体的实现。
MyBatis概念MyBatis是一个实现了JPA规范的用来连接数据库并对其进行增删改查操作的开源框架 (就和传统的JDBC一样,就是个连接数据库的东西),其实,它底层就是一个JDBC封装的...
Nginx是什么?Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务其他的HTTP服务:
HTTPD-Apache基金会
IIS-微软
GWS-Google(不对外开放)我们为什么选择Nginx?1. IO多路复用epoll2. 轻量级
功能模块少 - Nginx仅保留了HTTP需要的模块,其他都用插件的方式,后天添加
代码模块化 - 更适合二次开发,如阿里巴巴Tengine3. CPU亲和把CPU核心和Nginx工作进程绑定,把每个worker进程固定在一个CPU上执行,减少切换CPU的cache miss,从而提高性能。4. sendfilesendfile: 设置为...
solr原理索引Solr/Lucene采用的是一种反向索引(倒排索引),所谓反向索引:就是从关键字到文档的映射过程,保存这种映射这种信息的索引称为反向索引
左边保存的是字符串序列
右边是字符串的文档(Document)编号链表,称为倒排表(Posting List)索引创建一、把原始文档交给分词组件(Tokenizer)
将文档分成一个一个单独的单词
去除标点符号
去除停词(stop word)
二、词汇单元(Token)传给语言处理组件(Linguistic Processor)
变为小写(Lowercase)。
将单词缩减为词根形式,如”cars”到”car”等。这种操作称...
Tomcat是什么?Tomcat 服务器Apache软件基金会项目中的一个核心项目,是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
Tomcat 有哪几种Connector 运行模式(优化)?BIO:同步并阻塞一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。Tomcat7或以下,在Linux系统中默认使用这种方式。
NIO:同步非阻塞IO利用Java的异步IO处理,可以通过少量的线程处理大量的请求,可以复用同一个线程处理多个connection(多路复用)。Tomcat...
CPU 与内存CPU ( Central Processing Unit )是一块超大规模的集成电路板,是计算机的核心部件,承载着计算机的主要运算和控制功能,是计算机指令的最终解释模块和执行模块。
linux内核map图http://makelinux.net/kernel_map/
Linux中软链接和硬链接的区别我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。
用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;
元数据,则是文件的附加属性,如文件大小、创建时间、所有...
进程有哪些状态一般来说,进程有三个状态,即就绪状态,运行状态,阻塞状态。
运行态:进程占用CPU,并在CPU上运行
就绪态:进程已经具备运行条件,但是CPU还没有分配过来
阻塞态:进程因等待某件事发生而暂时不能运行当然理论上上述三种状态之间转换分为六种情况;
运行——>就绪:1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态。
就绪——>运行:运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU
运行——...
Kafka介绍Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。
Kafka特性
高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个pa...
1、IO和NIO
面向流和面向Buffer传统IO和Java NIO最大的区别是传统的IO是面向流,NIO是面向BufferJava IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动。这就增加了处理过程中的灵活性。但是,还需要检查是否该缓冲区中包含所有您需要处理的数据。而且,需确保当更多的数据读入缓冲区时,不要覆盖缓冲区里尚未处理的数据。
选择器Java N...